2015-06-02 192 views
1

我一直在努力與一些htaccess重定向。我花了一些時間閱讀和搜索,無法獲得適用於我的場景的解決方案。Mod_rewrite(htaccess)QSA和刪除附加查詢字符串的字符

我正在將舊網站(ASP)的301重定向到一個新的(Wordpress)。舊的頁面有參數查詢我需要處理,但也從中刪除'http://'字符串以重定向工作。

實例URL(舊)重定向的樣子:

http://www.domain.org/index.asp?documentID=2410&utm_source=IT+Travel+Reminder&utm_medium=Informz%2FnetFORUM&utm_campaign=IT%2FTravel+Reminder%2FMonthly+Monthly+Travel+Reminder&zbrandid=4050&zidType=CH&zid=28841368&zsubscriberId=1036792259&zbdom=http://my.informz.net 

重定向到:

http://www.domain.org/permalink-2410/?qs=true&utm_source=IT+Travel+Reminder&utm_medium=Informz%2FnetFORUM&utm_campaign=IT%2FTravel+Reminder%2FMonthly+Monthly+Travel+Reminder&zbrandid=4050&zidType=CH&zid=28841368&zsubscriberId=1036792259&zbdom=my.informz.net 

和的.htaccess代碼並將其重定向到:

RewriteCond %{QUERY_STRING} ^documentid=2410(&.*)$ [NC] 
RewriteRule ^index\.asp(.*):(.*)$ http://www.domain.org/permalink/?qs=true%1%2 [L,R=301,QSA] 

,但不知是不是按我期望的那樣工作

RewriteCond %{QUERY_STRING} ^documentid=2410(&.*)$ [NC] 
RewriteRule ^index\.asp$ http://www.domain.org/permalink/?qs=true%1 [L,R=301,QSA] 

正常工作時,我會從查詢字符串中刪除http://:

我在哪裏犯了錯誤?

謝謝!

+0

上面的asp URL應該重定向到什麼URL? – anubhava

+0

問題更新 – JackTheKnife

回答

1

試試這個規則:

RewriteCond %{QUERY_STRING} ^documentid=(\d+)(&.+?)http://(.+)$ [NC] 
RewriteRule ^index\.asp$ http://www.domain.org/permalink-%1/?qs=true%2%3 [L,R=302,NC,NE] 

確保測試此之前,清除瀏覽器緩存。

+0

不知何故,整個'RewriteCond'不工作 - 對於'RewriteCond%{QUERY_STRING}^documentid =(\ d +)'只能正常工作 – JackTheKnife

+0

我已經在我的Apache上測試過這個規則,它工作正常。確保這是'RewriteEngine On'行下面的第一條規則。您必須輸入以測試的網址應爲:http://www.domain.org/index.asp?documentID=2410&utm_source=IT+Travel+Reminder&utm_medium=Informz%2FnetFORUM&utm_campaign=IT%2FTravel+Reminder%2FMonthly+Monthly+Travel+ Reminder&zbrandid = 4050&zidType = CH&zid = 28841368&zsubscriberId = 1036792259&zbdom = http:// my.informz.net' – anubhava

+0

我有'RewriteEngine On',並且在兩臺運行cPanel的不同服務器上測試過這個規則 - 兩者都無法通過該條件 – JackTheKnife