2012-10-09 2 views
0

별칭이 .htaccess에서 작동하지 않기 때문에 mod_rewrite를 사용하여 일부 아파치를 사용하고 싶습니다.Apache 별칭/리디렉션 루프 다시 쓰기

예를 들어 내가 article/?id=1에 대한 별칭이 about/

해야 할 간단한 일이 그것을 수행합니다

RewriteRule ^about\/$ "article\/\?id=1" [L] 

그러나 동시에 나는 사람이 더 이상 article/?id=1에 액세스하고 싶지 않아 페이지 값과 주스를 보존하기 위해 about/으로 301 리디렉션을 만듭니다. (그렇지 않으면 검색 엔진은 두 개의 서로 다른 페이지라고 판단하여 자신의 재량에 따라 판단 할 것입니다.)

다른 말로하면이 URL은 별칭으로 만 사용할 수 있고 다른 누군가가 실제 페이지를 요청한 경우 - 별칭으로 리디렉션합니다.

그리고 문제가 시작되는 그 (루프를 재) 나는 또 다른 재 작성 규칙을 작성할 때, 나는 오류 (310)와 끝까지,이다 :

RewriteRule ^article\/\?id=1$ "about\/" [L,R=301] 

이 문제를 해결하기 위해 어떤 방법이 있나요 ...?

답변

0

다른 규칙은 단순히 내부적으로 다시 작성하고 리디렉션을 트리거하여 루프를 유발하기 때문에 실제 요청과 일치해야합니다. 또한 RewriteRule의 쿼리 문자열과 일치시킬 수 없습니다.

RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /article/\?id=1&?([^\ ]*) 
RewriteRule^/about/?%2 [L,R=301] 
관련 문제