Я хочу понять хотя бы немного о том, как работает .htaccess
.я использую .htaccess
от Zend Framework (так как это то, что я часто использую)
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
1-я строка, чтобы установить переменную окружения, хорошо, простой enuf, но что делают последующие строки?для чего -s -l [NC,L]
и т. д.из документов Apache я могу видеть, что
-s
- относится к «обычному файлу с размером».просто любопытно, есть ли нестандартный файл? -l
- относится к символической ссылке - что -d
- относится к директории REQUEST_FILENAME
- полный путь локальной файловой системы к файлу или сценарию, соответствующему запросу REQUEST_URI
- ресурс, запрошенный в строке HTTP-запроса.
при условии, что я просмотрел "http://localhost/some/path/here
",чему будет равняться REQUEST_FILENAME
& REQUEST_URI
?
В любом случае, я интерпретирую правила в настоящее время как
- , если запрос для файла с размером ИЛИ
- , если запрос для ссылки ИЛИ
- если запрос на каталог
- ... сделать что-то ...
- что делает
RewriteRule ^.*$ - [NC,L]
? - тогда я думаю, что все, что соответствует правилам, указанным выше, перенаправляется на index.php