PHP заголовок 404 не работает с .htaccess?

0

Почему header('HTTP/1.0 404 Not Found') не работает, когда у меня есть эта строка в.htaccess RewriteRule ^([a-zA-Z0-9\-]+)/?$ index.php?url=$1 [L,QSA]?

Как я могу заставить его работать, чтобы я мог сохранить RewriteRule ^([a-zA-Z0-9\-]+)/?$ index.php?url=$1 [L,QSA] - возможно, в этом есть ошибка линия?

Кроме того, хотя я удаляю его, header('HTTP/1.0 404 Not Found') показывает только 404.php на browrser, вместо указания на 404.php и отображения сообщения об ошибке в этом документе.

Ниже приведены мои коды и файлы. Все они находятся в корневом каталоге для тестирования.

index.php,

header('HTTP/1.0 404 Not Found');
exit();

404.php,

echo "<h1>404 Not Found</h1>";
echo "The page that you have requested could not be found.";

.htaccess,

RewriteEngine on

RewriteRule ^([a-zA-Z0-9\-]+)/?$  index.php?url=$1 [L,QSA]

ErrorDocument 404 404.php

Есть идеи?

РЕДАКТИРОВАТЬ:

Для

ErrorDocument 404 /404.php

Я получаю эту ошибку,

Запрошенный URL/mywebsite/xxx/xxx/не найден на этом сервере.

Кроме того, при попытке использовать ErrorDocument для обработки запроса была обнаружена ошибка 404 Not Found. '

Он все еще не указывает на 404.php

Теги:
.htaccess
mod-rewrite

1 ответ

1
Лучший ответ

Если вы посмотрите документацию по директиве ErrorDocument, ему нужен либо абсолютный URL-путь, поэтому он начинается с "/" или "http://" (или "https://"). В противном случае он интерпретирует второй аргумент как сообщение.

Это тот же сценарий, что и:

ErrorDocument 404 Wildcard!

И если кто-то получит ошибку 404, они увидят в своем браузере "Wildcard!".

Вам нужно изменить его на URL-путь, например /404.php.

  • 0
    Я попробовал это, и я получил это The requested URL /mywebsite/xxx/xxx/ was not found on this server. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
  • 1
    @ tealou ты уверен, что у вас есть правильный абсолютный путь? /404.php не может быть относительно того, где находится файл htaccess.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню