LINUX.ORG.RU
ФорумAdmin

Занятный вопрос насчет ErrorDocument

 ,


0

1

Ситуация: в конфиге апача указано
ErrorDocument 404 /err404.htm

Если запрошеный файл не существует, апач отдает:
HTTP/1.1 302 Found
Location: /err404.htm

И дальше браузер подает новый запрос (GET /err404.htm) на сервер. Если этот же страница err404.htm не существует - циклического редиректа не происходит, апач каким-то образом понимает, что это перенаправлено с errordocument и отдает свою внутреннюю 404. Вопрос - каким образом это происходит? Какие-то заголовки в запросе или же апач сохраняет определенную инфу про эти редиректы где-то у себя? В документации апача ничего похожего не нашел. Буду благодарен за любые мысли по теме.

★★★★★

Последнее исправление: Komintern (всего исправлений: 2)

апач сохраняет определенную инфу про эти редиректы где-то у себя

скорее всего именно так, но правильный ответ - заглянуть в код апача

Pinkbyte ★★★★★
()

глянуть заголовки с помощью curl -I http://example.com
м.б. апач смотрит на урл, с которого клиент пришёл и, если он такой-же, как и 404-я (а указан. файла для неё нет) — выдаёт свой?

cac2s
()
Ответ на: комментарий от cac2s

тем более, что если пыхом можно спрашивать у апача/nginx'а/etc. урл с котрого пришли на текущую ($HTTP_REFERER), то почему бы апачу самому не использовать эту информацию для предотвращения бескон. редиректа

cac2s
()
Ответ на: комментарий от Kiborg

хм. действительно нет. если указаной страницы нет, отдается внутренняя 404. т.е апач проверяет наличие страницы прежде чем отослать ответ. понятно.

Komintern ★★★★★
() автор топика
Ответ на: комментарий от Komintern

нет. еще забавно что если указано урлом, то кидается location. а если путем - то происходит internal redirect. надо будет таки заглянуть в код апача.

Komintern ★★★★★
() автор топика
Ответ на: комментарий от Komintern

:) это первый способ, который пришел мне в голову, чтобы избежать проверок на зацикливание запросов.

Kiborg ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.