Force 404 с PHP и .htaccess не работает - PullRequest
11 голосов
/ 23 августа 2011

Я пытаюсь скинуть свои 404 в PHP в зависимости от определенных переменных GET. Но следующее не работает. Я могу подтвердить, что заголовок pge возвращается с «кодом состояния 404». Похоже, что .htaccess не перенаправляет правильно. Я что-то упустил?

Код PHP:

if(!$_GET['page']){
    header('HTTP/1.0 404 Not Found');
}

.htaccess Код:

ErrorDocument 404 /404.html

Большое спасибо!

Ответы [ 2 ]

13 голосов
/ 23 августа 2011

Что касается Apache, он выполнил свою работу, поскольку он правильно нашел страницу / скрипт, к которому обращался пользовательский запрос.Тот факт, что скрипт выводит заголовок 404, не имеет никакого значения для Apache, поскольку его работа была выполнена правильно.

Вам необходимо, чтобы ваш PHP-скрипт выводил заголовок 404 и включал страницу обработчика Apache 404указывает на это:

if (!$_GET['page']) {
    header('HTTP/1.0 404 Not Found');
    include('404.html');
    exit();
}

Не делайте перенаправления на страницу 404, так как это просто превратит попадание в обычный запрос GET с результатом 200 OK.

0 голосов
/ 06 июля 2013

Невозможно заставить страницу ошибки начинаться с номера на тестовом сервере XAMPP, который я знаю ...

Это может быть верно для окон ... период .

этот ускользнул от меня на час !

Попробуйте переименовать страницу ошибки на:

error404.html

затем измените раздел об ошибке .htaccess для вашего 404 на:

ErrorDocument 404 /error404.html

И не забудьте запустить его с косой черты. Это исправит это.

...