2016-06-09 2 views
0

을 사용하여 URL에서 문자열을 제거하고, 내 URL에서 반복되는 일부 문자를 제거해야합니다.최근 프로젝트에서 htaccess

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] 
보다 구체적인, 내가

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

이 될이 URL을 만들고 싶어, ga_ 부분

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

나는이 시도 제거

하지만 아무것도 작동하지 않습니다. 제게 조언 해주세요. 감사.

답변

0

이 작동합니다 : 당신이 있기 때문에 대신

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 코드는 요청을 리디렉션되지 않는 이유는

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] 

를 쿼리 문자열이 동적 인 경우,이 시도 쿼리 문자열 대신 uri에 uri를 추가합니다.

+0

안녕하세요, 귀하의 제안에 감사하지만 작동하지 않았습니다. 확실하지는 않지만 RewriteBase 규칙과 관련이 있습니까? – camelot