2012-09-17 4 views
0

우리는 plesk 기반 시스템을 사용하고 있으며 최근에 도메인 이름을 변경했습니다. 이전 도메인으로 들어오는 모든 요청을 새 도메인으로 리디렉션하고 싶습니다. 비슷한 방식으로 많은 질문이 제기되지만 내 의견은 약간 다릅니다. 모든 하위 도메인이 새 도메인의 동일한 하위 도메인으로 라우팅되도록하고 싶습니다. docroot에 일반 htaccess를 설정했지만 어떤 이유로 모든 하위 도메인에도 적용됩니다..htaccess with subdomains - apache + plesk

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

하위 도메인을 적절하게 라우팅하도록 좀 더 일반화하려면 어떻게해야합니까? 보너스 포인트의 경우 https 요청을 https 및 http를 http로 라우팅하려면 어떻게해야합니까?

내가 바람직하지 않은 규칙이 두 번째로 첫 번째 URL을 변환 것을 추가 할 :

http://SUBDOMAIN.olddomain.com/somepath/somefile.php 
http://newdomain.com/subdomains/SUBDOMAIN/httpdocs/somepath/somefile.php 

적절한 다음 URL을 생성해야 변환 :

http://SUBDOMAIN.newdomain.com/somepath/somefile.php 

마지막을, 이것은 와일드 카드 하위 도메인에서 작동해야합니다.

고맙습니다.

답변

0

시도 :

# ignore "www." 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} ^([^.]+)\.olddomain.com$ [NC] 
RewriteRule ^(.*)$ http://%1.newdomain.com/$1 [L,R=301] 

당신은 당신이 이미 가지고있는이 전에 규칙을 원하는 것입니다.

질문을 편집 했으므로 새 사이트의 하위 도메인을 처리하기위한 내부 재 작성이 필요합니다. 이는 리디렉션과 아무 관련이 없습니다. 이 기능은 301 리디렉션 범위를 벗어나는 새로운 기능입니다. 하위 도메인의 내부 라우팅을 처리하기 위해 특별한 규칙이 필요합니다.

RewriteCond %{REQUEST_URI} !^/subdomains/ 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} ^([^.]+)\.newdomain.com$ [NC] 
RewriteRule ^(.*)$ /subdomains/%1/httpdocs/$1 [L] 
+0

혼란을 드려 죄송합니다. 위의 바람직한 리디렉션 경로를 명확히했습니다. 기본적으로 다음 URL http://SUBDOMAIN.newdomain.com/somepath/somefile.php을 만들고 와일드 카드 하위 도메인과 함께 사용하고 싶습니다. – VinnyD

+0

@VinnyD 당신은 2 개의 완전히 다른 것을 여기에서 요구하고 있습니다. –