25
我想mod_rewrite一個URL到另一個頁面,但我也想要添加任何查詢字符串保留。我該如何mod_rewrite並保留查詢字符串?
RewriteEngine On
#enforce trailing slashes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !#
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://localhost/siteroot/$1/ [L,R=301]
RewriteRule ^apps/([A-Za-z0-9-_]+)/?$ index.php&app=$1
因此,如果用戶訪問apps/app1/
,index.php?app=app1
所示。 但是,我希望能夠保留可選的查詢字符串,以便訪問apps/app1/?variable=x
返回index.php?app=app1&variable=x
。
什麼mod_rewrite規則/條件會使這種情況發生?
謝謝,我沒有意識到這很簡單。 –
+1同意@DanielOakey ..我試圖用正則表達式來破解一些東西,但它不工作.. –
澄清,這不是關於重寫與重定向。 http://httpd.apache.org/docs/current/rewrite/flags.html#flag_qsa說: 當替換URI包含查詢字符串時,RewriteRule的默認行爲是放棄現有的查詢字符串,並將其替換與新生成的一個。使用[QSA]標誌會導致查詢字符串被合併。 –