2014-08-29 2 views
0

%20+ 공백을 리디렉션하기 위해 이미 htaccess가 쿼리 문자열에 있습니다. 그런 다음 한 디렉토리에서 다른 디렉토리로 리디렉션하는 또 다른 규칙이 있습니다.htaccess URL 쿼리 문자열을 다른 문자열 매개 변수로 리디렉션

예 :

http://Mysite/domestic-jobs/?domestic=val or otherVal

지금 내가 ?domestic=에서 ? 후 쿼리 문자열 매개 변수를 리디렉션 내 htaccess로 파일에 포함 할 다른 규칙이 필요

http://Mysite/jobs/?domestic=val+or+otherVal

로 리디렉션됩니다 ?position=. 파일의 다른 규칙을 방해하지 않고 어떻게이 작업을 수행 할 수 있습니까?

예 :

http:/Mysite/domestic-jobs/?domestic=val or otherVal

내가 필요는 여기에 지금까지 무엇을 가지고

http:/site/jobs/?position=val+or+otherVal

로 리디렉션합니다. RewriteEngine On에서

Options +SymLinksIfOwnerMatch 
RewriteEngine on 
RewriteCond %{QUERY_STRING} ^(.*)%20(.*)$ 
RewriteRule ^(.*)$ /$1?%1+%2 [L,R=301,NE] 

RewriteRule ^domestic-jobs/(.*)$ /jobs/$1 [R=301,NC,L] 
+0

존 린의 대답했다. 내 htaccess 파일에 이미있는 첫 번째 Cond와 Rule 다음에 Cond와 Rule을 추가해야했습니다. 그렇지 않으면 제대로 리디렉션되지 않았습니다. 덕분에 – Mike

답변

1

은 추가

RewriteCond %{QUERY_STRING} ^domestic=(.*)$ 
RewriteRule ^(.*)$ /$1?position=%1 [L,R=301] 
+0

. 나는 단지 그 이상이 있다면? 나는 blahblah =와 blahblahblah =를 가지고 있고 모두를? position =으로 바꾸고 싶다고 말합니다. 와일드 카드 나 내가 사용할 수있는 것이 그 후 무엇인가를 바꿀 것입니까? ? position = if? position =이 (가) 이미? – Mike

+0

'domestic ='을'[^ =] + =' –

+0

hmmm으로 변경하면 무한 루프가 발생합니다. '? position ='이 아닌 경우에만 리디렉션되어야합니다. – Mike

관련 문제