2015-04-02 92 views
2

我已經在其他地方做了很多閱讀,但我仍然在努力實現這個新的htaccess重定向。我已經嘗試了各種版本的重寫,但無法使其正常工作。此外,仍然對我是否應該使用QSA感到困惑。301重定向 - 動態URL - 保持查詢字符串

我想我的舊頁面具有動態URL重定向到我設置的新目錄/頁面。事情是,我不想爲所有的州和國家寫一個條目。我想保留現有的查詢字符串。

我試圖從去:

http://example.com/olddir/detailsbyst.php?country=____&state=__&sd=____ 
http://example.com/NEWDIR/detailsbyst.php?country=____&state=__&sd=____ 

的最後一個版本我想是這樣的

RewriteCond %{HTTP_HOST} ^example\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.example\.com$ 
RewriteCond %{QUERY_STRING} ^country=([A-Z­a-z­0-9­-]+)$ [NC] 
RewriteCond %{QUERY_STRING} ^state=([A-Z­a-z­0-9­-]+)$ [NC] 
RewriteCond %{QUERY_STRING} ^sd=([A-Z­a-z­0-9­-]+)$ [NC] 
RewriteRule ^olddir/detailsbyst\.php$ http://example.com/newdir/detailsbyst.php [NC,QSA,L,R=301] 

與此相關的,一些老的動態網址有&遞減,而不是& sd在查詢字符串的末尾,所以對於那些URL我想將& desc轉換爲$ sd

謝謝 - 尼克

+0

這應該做的伎倆:http://chilipepperdesign.com/2009/02/01/ htaccess的查詢字符串-301S / – MrTechie 2015-04-02 05:40:54

回答

0

如果你只想重定向/olddir/地址/NEWDIR/,你需要使用一個重寫規則:

RewriteRule ^olddir(.*)$ /NEWDIR$1 [NC, L,R=301] 
相關問題