Каковы элементы.htaccess REQUEST_FILENAME и THE_REQUEST?

Что возвращается% {REQUEST_FILENAME} и% {THE_REQUEST}?

Я просто проверял наш файл.htaccess, и это меня осенило, я очень мало знаю об этом. В приведенном ниже коде используется и то, и другое. Это работает, я просто хочу понять это.

#remove / at the end of URL
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/$ /$1 [L,R=301]

#remove /index.php at the end of URL
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ /$1 [R=301,L] 

Приветствия, Марк

Ответ 1

Спасибо Ахмеду за ссылку.
Как быстрая ссылка никому, ленившему щелкнуть по ней здесь, бит, после которого я был...

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

REQUEST_URI Компонент пути запрошенного URI, например "/index.html". Это заметно исключает строку запроса, которая доступна как ее собственная переменная с именем QUERY_STRING.

REQUEST_FILENAME Полный путь к локальной файловой системе к файлу или скрипту, соответствующему запросу, если это уже было определено сервером в момент ссылки REQUEST_FILENAME. В противном случае, например, при использовании в контексте виртуального хоста, то же значение, что и REQUEST_URI. В зависимости от значения AcceptPathInfo сервер может использовать только некоторые ведущие компоненты REQUEST_URI для сопоставления запроса к файлу.