2012-03-19 72 views
0

我剛搬到我的網站到一個新的服務器,這是Mac OS X服務器如何使整個網站支持「WWW」和「無www」與的.htaccess

的問題是,我不有它更控制並有一個小問題[或可能大他人]

當人們訪問我的網站http://mydomain.com這將很好地工作或不www,但我在一個子目錄另一個文件夾名爲forum和只想訪問這個網站就像http://www.mydomain.com/forum一樣去,當我訪問http://mydomain.com/forum它將導致頁面未找到,我目前的解決方案是在文件夾中創建一個目錄在我的網站上有一個文件夾中找到名爲forum與重定向到http://www.mydomain.com/forum

現在我的問題是我怎麼可以創建一個重寫規則爲.htaccess,使其同時支持版本www和非www的,這樣的遊客將有一個選項訪問我的網站。

對不起,如果我發佈在錯誤的地方。

感謝

回答

1

我用這個:

<VirtualHost *:80> 
    ServerName domain.com 
    DocumentRoot   /u02/web/hosting/domain.com 

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^domain\.com 
    RewriteRule ^/(.*)$ http://www.domain.com/$1 [L,R=Permanent,L] 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName www.domain.com   
    DocumentRoot   /u02/web/hosting/www.domain.com 
.... 
</VirtualHost> 

第一虛擬主機只是重定向所有流量從domain.com到第二虛擬主機www.domain.com

+0

我認爲這個解決方案,但它不會因爲他的工作可能希望'domain.com'不要做外部重定向,而只是作爲網站的備用名稱,但功能減少(阻止嘗試以這種方式訪問​​'/ forum')。雖然301重定向可能是更好的方式來處理對「example.com/forum」的訪問,而不是404訪問它們。 – Kaz 2012-03-19 07:29:42

1

有很多方法對皮膚的貓,但我的直覺說,有不同的行爲兩個不同的領域應該是不同的VirtualHost條目,可能有不同的文檔根。

在這種情況下,我會做兩個虛擬主機指向同一DocumentRoot因爲大部分http://example.comhttp://www.example.com同一個網站,除了example.com要禁止一些事情。

VirtualHost對於http://example.com可以查找特定的網址,例如/forum並使其失敗,從而允許其他網站傳遞到訪問文檔根目錄。

VirtualHost對於http://www.example.com不關心任何這些;它只允許正常訪問其URL。