2016-07-24 6 views
2

웹 사이트를 다른 URL로 리디렉션하기위한 조건을 만들어야하는데 상당히 복잡한 조건이라고 생각합니다. 이 리디렉션 내 기반을하지만 나는이 단어가 나타나면이 리디렉션을 실행하지 않도록 예를 들어 단어 '자동차'에 대한 /page/5/ 앞에 일부 단어를 제외해야.htaccess에서 규칙을 적용하는 방법

#RewriteRule (pl)?(/page/5/?)$ /polityka-prywatnosci/ [R=301,L] 

. 모든 것을 명확하게하려면 다음을 수행하십시오.Ive : http://some-url/page/5 으로 리디렉션하고 싶지만 http://some-url/car/page/5이 있으면이 URL에 머물고 싶습니다. 나는 같은 트릭을 시도 : #RewriteRule (pl)?[^(car)](/page/5/?)$ /polityka-prywatnosci/ [R=301,L]하지만 작동하지 않습니다. 그것을 극복 할 수있는 가능성은 무엇입니까? 부정적인 lookbehind이 허용되면

+0

불행하게도 그것은 그것에 대해 –

답변

1

, 당신은으로 시도 할 수 있습니다 :

RewriteRule (?<!car|car/pl)(/pl)?(/page/5/?)$ /polityka-prywatnosci/ [R=301,L] 

regex demo를 참조하십시오. 지금은 다른 질문을보고 있어요

RewriteRule (/page/5/?)$ /polityka-prywatnosci/ [R=301,L] 
RewriteRule (car|car/pl)/polityka-prywatnosci/$ $1/page/5/ [R=301,L] 
RewriteRule /pl(/polityka-prywatnosci/)$ $1 [R=301,L] 
+0

덕분에 작동 나던하지만 임 afriad 그것은/htaccess로에서 MarekCzyż @ –

+0

을 허용하지 않는다 :

또 다른 방법은 주 3 연속 교체에 수 동일한 주제와 lookbehind가 허용되는 것 같습니다. 어쨌든, 나는 대답을 업데이트했습니다 : 그것이 효과가 있다고 생각합니까? – horcrux

+0

htaccess가 처음으로 일치하는 대체품을 검색 한 다음 그대로 두었 기 때문에 @horcrux가 남았습니다. –

관련 문제