2016-06-09 5 views
0

в моем недавнем проекте, мне нужно удалить несколько повторяющихся символов из моего url. Более конкретно, я хочу, чтобы этот 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

 Смежные вопросы

  • Нет связанных вопросов^_^