2013-10-28 4 views
1

나는 2 개의 재 작성 규칙을 만들려고 노력하고 있지만, 다른 하나가 활성화되어있을 때 그 중 하나가 예상대로 작동하지 않습니다.2 개의 재 작성 규칙이 서로를 블로킹하지 않음

RewriteCond %{HTTP:Accept-Language} ^es [NC] 
RewriteRule ^/?$ /$1?language=spanish [R=302] 
RewriteRule ^(.*)$ /$1?language=spanish [R=302] 

두 번째 것은 아무리 효과가 있습니다. 첫 번째 작업은 두 번째 작업이 활성화되어 있지 않으면 작동하지 않습니다. 이 작업을 함께 수행하려면 어떻게해야합니까?

감사합니다.

+0

더 이상 규칙을 적용하지 않으려면 R = 302에 'L'플래그를 추가 할 수 있습니다. 따라서 결과 플래그 세트는 [R = 302, L] – drobert

답변

0

사용 L 플래그 2 규칙 조건을 더 추가 실행을 방지하려면

RewriteCond %{HTTP:Accept-Language} ^es [NC] 
RewriteRule ^/?$ /$1?language=spanish [R=302,L,QSA] 

RewriteCond %{QUERY_STRING} !^language=.+ [NC] 
RewriteRule ^(.*)$ /$1?language=something-else [R=302,L,QSA] 

L 플래그가 현재 다시 루프를 종료하고, 처리를 위해 규칙을 주입한다.

+0

입니다. 감사합니다! 이유는 모르겠지만이 경우 L 플래그를 제거해야합니다. 그렇지 않으면 작동하지 않습니다. 도와 줘서 고마워. :) – user2329017

+0

. 천만에. – anubhava

0

첫 번째 규칙이 전혀 필요하지 않으며 조건이 첫 번째 규칙에만 적용되고 두 번째 규칙에는 적용되지 않습니다.

RewriteCond %{HTTP:Accept-Language} ^es [NC] 
RewriteRule ^(.*)$ /$1?language=spanish [R=302,L] 
+0

이 경우 두 번째 부분이 필요했지만 그렇지 않으면 작동하지 않았습니다. 어쨌든 존 감사합니다! – user2329017

관련 문제