Force 404 с PHP и .htaccess не работает
Я пытаюсь бросить свои 404 в PHP в зависимости от определенных GET-варов. Но следующее не работает. Я могу подтвердить, что заголовок pge возвращается с кодом статуса 404..htaccess просто не перенаправляется правильно. Я что-то пропустил?
Код PHP:
if(!$_GET['page']){
header('HTTP/1.0 404 Not Found');
}
.htaccess Code:
ErrorDocument 404 /404.html
Большое спасибо!
Ответы
Ответ 1
Что касается Apache, он выполнил свою работу, так как он правильно нашел страницу / script, к которой обратился запрос пользователя. Тот факт, что script выводит заголовок 404, не имеет отношения к Apache, так как его работа была выполнена должным образом.
Вам нужно, чтобы ваш PHP script выводил заголовок 404 и включал страницу, на которую указывает обработчик Apache 404:
if (!$_GET['page']) {
header('HTTP/1.0 404 Not Found');
include('404.html');
exit();
}
Не делайте переадресацию на страницу 404, так как это просто превратит обращение в обычный запрос GET с результатом 200 OK.
Ответ 2
Вы не можете заставить страницу ошибки начинать с номера на тестовом сервере XAMPP, который я знаю...
Это может быть справедливо для окон... period.
тот ускользнул от меня часами!
Попробуйте переименовать страницу с ошибкой на:
error404.html
затем измените свой раздел .htaccess Error для вашего 404:
ErrorDocument 404 /error404.html
И не забудьте запустить его с помощью косой черты. Это исправит это.