Как получить реальный запрос при использовании mod_rewrite - PullRequest
0 голосов
/ 30 ноября 2011

Мне интересно, как получить "реальный" запрошенный URL при использовании mod_Rewrite.В моем htaccess-файле есть несколько правил перезаписи для целей кэширования: во-первых, проверяется, существует ли кеш-файл.Если это так, запрос будет переписан в кеш-файл.В противном случае запрос будет переписан в php-скрипт, который создает этот кеш-файл.

Но я подозреваю, что правила не соответствуют, как я хочу.Есть ли возможность отследить «реальные» запросы, чтобы узнать, какой URL был запрошен клиентом, а какой файл запрошен в фоновом режиме?

1 Ответ

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

Вы можете захотеть специальную переменную %{THE_REQUEST} mod_rewrite docs говорится следующее:

Полная строка HTTP-запроса, отправляемая браузером на сервер (например, «GET /index.html HTTP / 1.1»).Это не включает никаких дополнительных заголовков, отправленных браузером.Это значение не было неэкранированным (декодированным), в отличие от большинства других переменных ниже.

Так что, если кто-то вводит http://your -domain / path / file.html в свой браузер иваш веб-сервер переписывает / path / file.html в нечто совершенно иное, переменная% {THE_REQUEST} по-прежнему будет GET /path/file.html HTTP/1.1 или чем-то похожим.

Что касается того, что запрос в итоге получилпереписав, вы можете включить ведение журнала для перезаписи, чтобы увидеть, что это такое:

    RewriteLog /some-path/rewrite.log
    RewriteLogLevel 9

Это будет указано в конфигурации вашего виртуального хоста и будет использоваться только для целей отладки.Файл rewrite.log будет содержать подробную информацию о процессе перезаписи и окончательном URI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...