任何人都可以解釋這個mod_rewrite正則表達式將如何工作?Apache mod_rewrite解釋
<IfModule rewrite_module>
RewriteEngine On
RewriteRule ^(.*)$ /Symfony/web/app_dev.php [QSA,L]
</IfModule>
當我輸入http://localhost/hello/testingonly
時,它會被重定向到什麼地方?
編輯:
我目前正在使用Symfony框架和嘗試聯機教程。 http://localhost/Symfony/web/app_dev.php/hello/testingonly
實際上會顯示一個頁面,上面寫着「Hello $ name」,在這種情況下$ name是指「只進行測試」。
因此,如果您訪問此頁http://localhost/Symfony/web/app_dev.php/hello/matthew
,頁面會顯示「Hi mathew」。
我想要做的下一件事是從URL中刪除Symfony/web/app_dev.php,我複製並粘貼上面的重寫規則,它運行良好。
我想知道的是它是如何解釋哪一個是名稱參數。
如果我要訪問http://localhost/hello/mathew
,並根據重寫規則,它應該只是http://localhost/Symfony/web/app_dev.php
,參數應該丟失。但是如何設法顯示「Hello mathew」?
對於你不明白的東西,你能否更具體一些? mod_rewrite非常複雜,可以爲不同目的定義各種重寫規則和條件。上面的例子使用regexp將所有使用的apache上下文(dir/host ...)中的所有請求重寫爲'''app_dev.php'''。請參閱[mod_rewrite文檔](http://httpd.apache.org/docs/current/mod/mod_rewrite.html)。 – matthias
@Matthias,抱歉沒有具體。我將編輯我的問題 – user3169403