#url-rewriting #http-status-code-404 #google-plus-one
#перезапись url #http-status-code-404 #google-plus-one
Вопрос:
Я использую пользовательскую страницу с ошибкой .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. Эти страницы 404, я предполагаю, что вы не можете использовать » 1″ эти страницы.
2. Мой error.php может быть 1 ‘d, так что я что-то упускаю…
3. Если вы используете Chrome, вы сможете использовать инструмент разработчика, верно? В разделе «Сеть» вы можете просмотреть код ответа. В этих случаях это 404.
Ответ №1:
Да, вы можете отправлять коды состояния 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-файлом.
Комментарии:
1. Chrome считает, что моя страница находится в цикле перенаправления, когда я пытаюсь добавить этот препроцессор в свой пользовательский документ ErrorDocument. Я собираюсь просто заставить мои PHP-страницы отправлять заголовок вместе с содержимым «ошибка», используя перезапись URL, когда клиент отправляет недопустимый материал $ _GET …. возможно, это то, что я изначально пытался сделать. Спасибо, я не знал, что вы можете отправлять содержимое страницы вместе с заголовком 404, я думал, браузер прервет загрузку, когда получит это.