2012-04-18 66 views
0

我擁有兩個域名:虛擬主機設置多個域的名稱和www版本重定向到一個非www域名

  • domain.com
  • domain.net

,我還可以決定如何最佳設置虛擬代碼以實現以下幾點:

  1. 如果訪問者輸入這兩個域名中的任意一個, Ødomain.net
  2. 如果要麼在前面WWW這兩個域名的訪問者類型,他們仍然domain.net加www
  3. 守在原地文件路徑,這樣:
    • domain.com/file.php最終要domain.net/file.php
    • www.domain.com/deeper/path/最終要domain.net/deeper/path/
    • www.domain.net最終要domain.net
    • ...等等

我看到,在this Q/A entry,我相信我需要什麼,但我不能100%確定。有人可以確認(或糾正),這將做我所需要的:

<VirtualHost *:80> 
    ServerName domain.net 
    ServerAlias www.domain.net domain.com www.domain.com 
    (the rest of the settings here) 
</VirtualHost> 

......是這麼簡單嗎?

回答

3

現在,您的虛擬主機會接受您的別名並以正確的文件響應,但不會重定向請求。如果你想有一個規範的子域,您可能需要添加一些重寫規則:

<VirtualHost *:80> 
    ServerName domain.net 
    ServerAlias www.domain.net domain.com www.domain.com 

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} !^domain\.net [NC] 
    RewriteCond %{HTTP_HOST} !^$ 
    RewriteRule ^/(.*) http://domain.net/$1 [L,R=301] 

    (the rest of the settings here) 
</VirtualHost> 

檢查http://httpd.apache.org/docs/2.0/rewrite/rewrite_guide.html#canonicalhost進一步解釋

+0

謝謝主席先生!我會在這個週末嘗試一下,讓你知道它對我的影響。 – 2012-04-19 13:53:07

+0

終於有了一個自由的時刻來嘗試一下,它是完美的。再次感謝! – 2012-04-24 03:25:36

相關問題