我有一個CMS系統,可以將醜陋的URL轉換爲更友好的URL。IIRF/APACHE重寫條件失敗,查詢字符串
到目前爲止instanstance,而不是頁面的URL是這樣的:
/pagebase.php?id=3644
,我爲每個頁面的URL寫設置,使其更加友好。
例如:
RewriteRule ^/events$ /pagebase.php?id=3644 [I]
所以當domain.com/events用戶鍵入他們拉起上方網址。
這適用於幾乎所有的頁面,除了這個我需要添加額外的查詢字符串,所以我可以做這樣的事情。
www.domain.com/events?y=2010=&m=&1d=2
這將改寫爲
www.domain.com/pagebase.php?id=3366&y=2010=&m=&1d=2.
唯一的問題是url寫匹配失敗,因爲它沒有看到?Y = 2010 = & M = & 1D = 2作爲查詢字符串,它將其視爲網址的一部分並失敗。
我需要修改我的重寫文件以允許查詢字符串通過。
我要像做 重寫規則^ /事件 - %QUERYSTRING%$ /pagebase.php?id=3644 +%QUERYSTRING%[I]
凡從比賽中刪除的查詢字符串,但隨後將其附加到書寫的網址的末尾。我只是沒有足夠的知識來了解如何重寫url。
這是我的重寫文件的一個例子。
RewriteRule ^/events$ /pagebase.php?id=3644
RewriteRule ^/faqs$ /pagebase.php?id=3659
RewriteRule ^/gallery$ /pagebase.php?id=3645
RewriteRule ^/gifts$ /pagebase.php?id=3646
我需要的東西,將所有頁面上工作,我不希望有修改每一個規則來處理特定的查詢字符串,我只想要一個通用的解決方案,將通過傳遞查詢字符串。
追加[L,QSA]將重寫規則語句。 「L」是說最後(不要繼續重寫),而「QSA」是查詢字符串追加以將參數添加到您的URL –
這似乎並不奏效。它看起來如何?像這樣RewriteRule ^/events $ /pagebase.php?id=3644 [L,QSA] – matwonk
我發現將查詢字符串與QSA結合可能會出現問題。 我認爲這可以做到這一點:'RewriteRule ^/events $ /pagebase.php?id=3644&%{QUERY_STRING} [L]' –