2013-02-05 2 views
0

흥미로운 상황을 다루고 있습니다.정규식 리디렉션/301

현재 URL의 예 1 : 여기에 무슨 일이 일어나고 있는지의 모든 위의 URL에

www.domain.com/red-widgets-cid-1234.html 

www.domain.com/red-widgets-cid-1234-1.html 

www.domain.com/red-widgets-cid-1234-1-1.html 

캐 노니 컬 :

www.domain.com/red-widgets-cid-1234.html 

New URL: 
www.domain.com/red-widgets-cid-4567.html 

현재 URL의 예 2 : 모든에

www.domain.com/red-widgets-cid-1234+10.html 

www.domain.com/red-widgets-cid-1234+10-1.html 

www.domain.com/red-widgets-cid-1234+10-1-1.html 

정식 위의 URL :

www.domain.com/red-widgets-cid-1234+10.html 

New URL: 
www.domain.com/red-widgets-cid-6789.html 

위 URL의 모든 변형을 새 URL로 리디렉션하고 싶습니다. 이러한 문제를 해결하는 데 사용할 수있는 와일드 카드 301 리디렉션/정규 표현식은 무엇입니까?

답변

0

이 시도 (그것을 테스트하지 않은) :

# (perhaps you need to escape "+" as "\+", 
    # - can you really have a "+" in the URL?) 

    RewriteCond %{REQUEST_URI} ^/red-widgets-cid-1234+10+5(.*).html [NC] 
    RewriteRule (.*) %{HTTP_HOST}/american-red-widgets-cid-6789+5%1.html [QSA,L] 

    RewriteCond %{REQUEST_URI} ^/red-widgets-cid-1234+10(.*).html [NC] 
    RewriteRule (.*) %{HTTP_HOST}/red-widgets-cid-6789%1.html [QSA,L] 

    RewriteCond %{REQUEST_URI} ^/red-widgets-cid-1234(.*).html [NC] 
    RewriteRule (.*) %{HTTP_HOST}/red-widgets-cid-4567%1.html [QSA,L] 

중요한 것은 먼저 긴 "일반적인"URL을 테스트하는 것입니다.
%1은 마지막 RewriteCond의 첫 번째 정규 표현식을 의미합니다.
$1은 현재 RewriteRule의 첫 번째 정규 표현식을 의미합니다.

NB! RewriteCond에 의해 잡힌 모든 URL에 대해 새 URL이 동일해야하는 경우 %1을 건너 뛸 수 있습니다. 예를 들어 원하는 경우에만 필요합니다. american-red-widgets-cid-6789+5-1.htmlred-widgets-cid-1234+10+5-1.html

+0

RewriteRule 문에서 % 1 또는 $ 1을 (를) 사용합니까? 또한 다음과도 처리 할 경우 : ** 현재 URL 예 3 : ** www.domain.com/red-widgets-cid-1234+10+5.html www.domain.com/red- 위젯 -cid-1234 + 10 + 5-1.html www.domain.com/red-widgets-cid-1234+10+5-1-1.html ** 위 URL의 정규식 : ** www.domain.com/red-widgets-cid-1234+10+5.html ** 새 URL : ** www.domain.com/american-red-widgets-cid-6789+5.html Can 우리는 또한 RewriteCond 규칙에 대해 URL의 "red-widgets"영역에서 와일드 카드를 사용합니까? 응용 프로그램은 cid 다음에 오는 내용 만 봅니다. – Nakul

+0

답을 업데이트했지만 원래 질문에 새 질문을 추가해야합니다. 그렇지 않으면 약간 혼란 스럽습니다. – 244an