2012-02-03 52 views
1

我通過在VirtualHost配置文件中指定的「別名」指令託管一個域,其中包含www.domain.com和domain.com兩個地址: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

差不多,配置你的建議引起了重定向循環。爲了接受你的答案,你應該在第一個VirtualHost中將ServerAlias與ServerName交換,而不是刪除ServerAlias。比它的工作!我將編輯我的答案以顯示新的工作配置。感謝提示。 – Darme 2012-02-03 07:38:27

+0

@DuccioArmenise更新。謝謝。 – 2012-02-03 07:44:36

+0

那麼「重定向永久」呢?它可能更適合搜索引擎優化,不是嗎?你知道嗎?我正在測試它... – Darme 2012-02-03 07:51:47

相關問題