Обработка 404 с неперенаправляющими страницами, которые не могут быть "+1 - PullRequest
1 голос
/ 10 ноября 2011

Я использую пользовательскую страницу ошибок .htaccess "error.php".Проблема в том, что он просто перенаправляет их.

Мне бы хотелось, чтобы мой 404 отображал запрошенный URL в адресной строке, как если бы пользователь никогда не перенаправлялся.

Вот несколько примеров моделей:

http://us.battle.net/wow/en/22222222222222222222

http://en.wikipedia.org/wiki/222222222222222222222

На этих страницах просто используется средство переписывания URL, которое в действительности напоминает "domain.com/index.php?page=2222222222222222222222"?Если так, то они просто распечатывают текст, не указывая, что это страница 404, не помечая ее как страницу ошибки?

Они должны что-то посылать в заголовок.У меня есть расширение Chrome для кнопки +1, и когда я перехожу на перечисленные страницы, оно выдает мне сообщение «Не удается +1 эта страница».

Кто-нибудь знает, что такое «флаг»используется здесь?

1 Ответ

0 голосов
/ 11 ноября 2011

Да, вы можете отправлять коды состояния HTTP с помощью препроцессора, который определяет, что страница не существует.Например, в PHP вы должны использовать это:

header('HTTP/1.1 404 Page Not Found');

Это отправит заголовок 404 вместе с пользовательской страницей 404, которую вы хотите отобразить.Вы можете сделать это с любым кодом статуса HTTP, даже создать свой собственный (хотя они, вероятно, не будут распознаны).

header('HTTP/1.1 418 I'm a Teapot');

Если вы используете определение ErrorDocument Apache в своем файле .htaccess, оноследует поддерживать код ошибки, пока вы не измените заголовки с определенной страницей (например, запустив файл PHP) или не перенаправите на новую страницу.Использование простого текста и / или (возможно) файла HTML сохранит заголовок 404.Я никогда не проверял это с HTML-файлом.

...