2016-06-09 28 views
0

從url中刪除字符串,我需要從我的url中刪除一些重複的字符。更具體的,我想使這個網址在我最近的項目中使用htaccess

http://example.com/cgi-bin/file.cgi?ga_option1=a&ga_option2=b&ga_option3=c 

成爲這個,取出ga_部分

http://example.com/cgi-bin/file.cgi?option1=a&option2=b&option3=c 

我嘗試這樣做:

RewriteEngine On 
RewriteBase /cgi-bin/ 
RewriteRule ^(.*)ga_(.*)$ http://%{SERVER_NAME}/$1-$2 [NC,R=301,L] 

這:

RewriteEngine On 
RewriteBase /cgi-bin/ 
RewriteCond %{QUERY_STRING} "ga_" [NC] 
RewriteRule (.*) http://example.com/cgi-bin/file.cgi?$1 [R=301,L] 

,但沒有任何作品。請給我一些建議。謝謝。

回答

0

這應該工作:

RewriteEngine on 


RewriteCond %{THE_REQUEST} /cgi-bin/file\.cgi\?ga_option1=a&ga_option2=b&ga_option3=c [NC] 
RewriteRule^/cgi-bin/file.cgi?option1=a&option2=b&option3=c [L,R] 

如果查詢字符串是動態的,那就試試這個,而不是

RewriteEngine on 


RewriteCond %{THE_REQUEST} /cgi-bin/file\.cgi\?ga_option1=([^&]+)&ga_option2=([^&]+)&ga_option3=([^\s&]+) [NC] 
RewriteRule^%{REQUEST_URI}?option1=%1&option2=%2&option3=%3 [L,R] 

爲什麼你的#2的代碼沒有進行重定向請求的原因是因爲你將uri附加到uri而不是查詢字符串。

+0

嗨,感謝您的建議,但它沒有奏效。我不確定,但是它與RewriteBase規則有什麼關係? – camelot

相關問題