2012-09-25 4 views
2

나는 3 개의 도메인 중 3 개가 마지막 도메인으로 리디렉션되도록합니다. 이미 일부 htaccess로 규칙을 사용하고 그들은도메인과 하위 폴더를 새 도메인 htaccess로 리디렉션

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^first.com$ [NC] 
RewriteRule ^(.*) http://www.forth.com/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^www.first.com [NC] 
RewriteRule ^(.*)$ http://www.forth.com/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^second.com [NC] 
RewriteRule ^(.*)$ http://www.forth.com/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^www.second.com [NC] 
RewriteRule ^(.*)$ http://www.forth.com/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^www.third.com [NC] 
RewriteRule ^(.*)$ http://www.forth.com/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^third.com [NC] 
RewriteRule ^(.*)$ http://www.forth.com/$1 [L,R=301] 

유일한 문제는 쇼 "www.forth.com/about"나는 쇼하지 않습니다 "www.first.com/about"입력 할 때입니다, 좋은 작업 똑같은 것 . 모든 도메인은 forth.com에 전달되며 호스팅하지 않기 때문에 htaccess 파일을 다른 도메인에 배치 할 수 없으므로 안내하십시오. 감사하겠습니다.

+0

, 한 가지를 명확히하십시오 - 당신이 그것을 의미합니까 :

그렇지 않으면, 당신은 사용하여 비트를 정돈 할 수 리디렉션되지 않고 전혀 작동하지 않습니까? 아니면 리디렉션을하고 브라우저 URL 필드의 호스트 이름을 변경하지 않는다는 의미입니까? 또한, "첫 번째"는 작동하지 않는 유일한 것이거나 모두 같은 행동을하고 있습니까? – Peter

+0

예, 브라우저 주소 표시 줄에 리디렉션하지만 이전 주소를 표시합니다. URL에 하위 폴더가있는 경우에만 리디렉션하고 이름을 변경합니다. 그리고 세 도메인 모두 하위 폴더와 동일한 동작을 수행합니다. 감사합니다. – user1698775

답변

0

적어도이 수정본이이 문제를 해결할 수있는 가장 큰 경우입니다.

[L, R = 301]을 사용하는 대신 순서를 반대로 바꾸고 [R = 301, L]을 수행하십시오. L은 마지막을 의미하고 그 시점에서해야 할 일을 평가할 때주기가 끝납니다. 나는 어디에서나 찾을 수있는 모든 예와 같이 항상 [R = 301, L]을 사용했습니다. 잠재적으로 아파치가 L을 치고 새로운 문자열을 URL 파서로 즉시 되돌려 보낼 수 있으며 301 리디렉션으로 전송하지 않습니다.

위의 첫 번째 snippit에서는^(. *)에 $를 입력하지 않았습니다.이 줄이 오타 였거나 실제 .htaccess 파일에없는 경우 확실하지 않습니다. 당신은 '유일한 문제는'가 새 도메인을 표시하지 않는다는 것입니다 말할 때

RewriteCond %{HTTP_HOST} ^((www.)?)first.com [NC,OR] 
RewriteCond %{HTTP_HOST} ^((www.)?)second.com [NC,OR] 
RewriteCond %{HTTP_HOST} ^((www.)?)third.com [NC] 
RewriteRule ^(.*)$ http://www.forth.com/$1 [R=301,L] 
+0

감사합니다 피터,하지만 처음에는 OR이 내 웹 사이트를 완전히 차단하고 OR을 제거한 후에도 이전과 동일하게 작동합니다. 실제로 변화. $는 오타였습니다. – user1698775

+0

마지막 OR에서 완전히 수정하고 위의 내용을 수정하여 수정하십시오. 좀 더 테스트를 할 수는 있지만 작동해야합니다. – Peter

+0

새로운 아파치 설치로 로컬 환경을 설정하고 위의 파일을'.htaccess'로 복사하고, first.com, second.com, third.com에 127.0.0.1을'/ etc/hosts' 파일에 넣고, 그런 다음 리디렉션 사이트로 www.google.com을 사용했습니다. 파일 또는 도메인 이름을 지정하거나 지정하지 않고 작동하며 브라우저에서 URL을 변경합니다. 추가 된 유일한 단계는'httpd.conf'에서'AllowOverride'를 올바르게 설정했는지 확인하는 것입니다. 나는 내 테스트를 위해 All을 사용했다. 기본적으로 None이고 그런 식으로 작동하지 않는다. – Peter

관련 문제