2012-02-03 4 views
1

www.domain.com 및 domain.com 주소가 모두있는 도메인을 VirtualHost 구성 파일에 지정된 "별칭"지시문을 통해 호스팅하고 있습니다. :Rails/Passenger/Apache2 : www.domain.com에서 domain.com으로 리디렉션

<VirtualHost *:80> 
    ServerName domain.com 
    ServerAlias www.domain.com 
    DocumentRoot /var/www/domain.com/current/public/ 
    <Directory /var/www/domain.com/current/public/> 
    AllowOverride all 
    Options -MultiViews 
    Order allow,deny 
    Allow from all 
    </Directory> 
</VirtualHost> 

이제 http://www.domain.comhttp://domain.com는 동일한 콘텐츠로 이동합니다. www.domain.com에 대한 모든 요청을 domain.com으로 리디렉션 할뿐만 아니라 www.domain.com/something을 domain.com/something으로 리디렉션해야합니다.

나는 모든 트래픽을 www.domain.com에서 domain.com으로 리디렉션하는 것이 가장 좋습니다. Apache, Passenger 또는 Rails 레벨에서 수행해야합니까? 그리고 어떻게? 301 리디렉션?

감사합니다. 감사합니다.

편집 :

워킹 구성은 지금 (와 "리디렉션 영구")이 하나입니다

<VirtualHost *:80> 
    ServerName www.domain.com 
    Redirect permanent/http://domain.com/ 
</VirtualHost> 


<VirtualHost *:80> 
    ServerName domain.com 
    DocumentRoot /var/www/domain.com/current/public/ 
    <Directory /var/www/domain.com/current/public/> 
    LimitRequestBody 4096000 
    AllowOverride all 
    Options -MultiViews 
    Order allow,deny 
    Allow from all 
    </Directory> 
</VirtualHost> 

답변

3

이 문제를 해결하는 가장 좋은 방법은 지시를 리디렉션 사용하는 것입니다 가상 호스트에 배치됩니다.

<VirtualHost *:80> 
    ServerName www.example.com 

    Redirect/http://example.com/ 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName example.com 
</VirtualHost> 

는 여기를 참조하십시오 http://httpd.apache.org/docs/2.2/rewrite/remapping.html#canonicalhost

+0

거의 구성하면 리디렉션 루프를 발생 제안했다. 답변을 수락하려면 ServerAlias를 지우는 것보다 ServerAlias를 첫 번째 VirtualHost의 ServerName으로 교체해야합니다. 그것보다 효과적! 내 답변을 편집하여 새 작업 구성을 표시 할 것입니다. 힌트를 가져 주셔서 감사합니다. – Darme

+0

@DuccioArmenise가 업데이트되었습니다. 감사. –

+0

그리고 "리디렉션 영구"은 어떻습니까? SEO 친절한 더 일 수 있었다, 그렇지? 그것에 대해 알았 니? 나는 그것을 테스트하고있다 ... – Darme

관련 문제