Как я могу вернуть 200, когда получу 404, отредактировав файл.htaccess?

У меня есть файл.htaccess и файл index.html в корневом каталоге домена. У меня есть коды ниже в этом файле.htaccess:

DirectorySlash Off

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])?$ /index.html [L]

Я надеюсь, что пользователи увидят содержимое в index.html, когда получат доступ к URL-адресу каталога, независимо от того, имеет ли этот URL-адрес косую черту или нет. Итак, у меня есть код выше.

Но у меня есть проблема. Когда я получаю доступ к каталогу, который не существует. Я получаю 404. Это не то, что я хочу. Я надеюсь, что пользователи всегда будут получать 200 и видеть содержимое в index.html при доступе к URL-адресу каталога. Как я могу решить эту проблему, отредактировав коды выше в файле.htaccess?

КСТАТИ. Пожалуйста, не перенаправляйте пользователей в файл index.html.

Спасибо!

1 ответ

Решение

Создайте пользовательскую страницу 404 и назовите ее, например, "404page.php". Убедитесь, что эта страница отправляет статус 200, прежде чем отправлять любой другой контент в браузер, поместив это вверху:

<?php
header("Status: 200 OK");
?>

Затем введите ErrorDocument 404 /404page.php в вашем htaccess.