Может ли кто-нибудь объяснить, как будет работать это регулярное выражение mod_rewrite?Apache mod_rewrite описание
<IfModule rewrite_module>
RewriteEngine On
RewriteRule ^(.*)$ /Symfony/web/app_dev.php [QSA,L]
</IfModule>
Когда я вхожу http://localhost/hello/testingonly
, то, что он будет перенаправлен?
EDIT:
В настоящее время я пытаюсь использовать Symfony Framework и опробовать онлайн-учебники. http://localhost/Symfony/web/app_dev.php/hello/testingonly
фактически отображает страницу с надписью «Hello $ name» и $ name в этом случае относится к «testingonly».
Так что, если вы заходите на эту страницу http://localhost/Symfony/web/app_dev.php/hello/matthew
, на странице будет сказано «Привет, Мэтью».
Следующее, что я хотел сделать, это удалить Symfony/web/app_dev.php из URL-адреса, и я скопировал и ввел правило перезаписи выше, и он просто хорошо работал.
Что я хотел знать, так это то, как он интерпретирует, какой из них является параметром имени.
Если бы я должен был посетить http://localhost/hello/mathew
, и на основе правила перезаписи должно быть только http://localhost/Symfony/web/app_dev.php
, и этот параметр должен быть утерян. Но как получилось, что ему удалось отобразить «Hello mathew»?
Не могли бы вы быть более конкретными в том, что именно вы не понимаете? mod_rewrite довольно сложный и позволяет определять различные правила и условия перезаписи для разных целей. В приведенном выше примере используется regexp для перезаписи всех запросов в используемом контексте apache (dir/host ...) в '' 'app_dev.php'''. См. [Mod_rewrite docs] (http://httpd.apache.org/docs/current/mod/mod_rewrite.html). – matthias
@ Matthias, извините за неспецифичность. Я отредактирую свой вопрос – user3169403