2012-09-18 32 views
1

我想添加一個最後的改進(關於htaccess),那就是我希望它將/?mod=inicio重定向到/inicio。所以我想用下面的代碼來做到這一點,但它使構建HTTP這樣/inicio?mod=inicio將%{QUERY_STRING}重定向到友好的網址

RewriteCond %{QUERY_STRING} ^mod=([a-z]+)$ [NC] 
RewriteRule .* /%1 [L] 

有額外的參數同樣的事情:從/?mod=x&type=y-z/x/y-z

回答

1

嘗試這些規則來代替:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /\?mod=([a-z]+)&type=([a-z\-]+) 
RewriteRule^/%1/%2? [L] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /\?mod=([a-z]+)($|\) 
RewriteRule^/%1? [L] 

關鍵是要匹配實際的請求而不是URI,因爲您的其他規則(來自您的上一個問題)將導致這些重寫匹配,它們會相互衝突。另一個關鍵點是在目標末尾包含一個?(例如/%1/%2?),這使得查詢字符串不會附加

+0

非常感謝你,先生,爲你的答案和分享你的一些知識。 – Alex