2011-05-04 61 views
2

工作,我在這裏看到了很多關於它的問題上如此,所以我在這裏發帖:的.htaccess - 子域名不能以www

我有一個域www.example.com和我已經設置.htaccess文件將所有example.com重定向到www.example.com

現在,我(通過我的plesk 10界面)創建了一個子域abc.example.com,我想要的也是www.abc.example.com所以我進入(也在plesk):

www.abc.example.com. CNAME abc.example.com. 

但它不工作。我需要重新加載/重新啓動DNS嗎?(如果是這樣,請告訴我如何?)或者我只需要等待一段時間,直到它傳播?

因爲我提到的CNAME沒有工作,我還添加了在ABC文件夾,看起來像這樣的的.htaccess(這可能是錯誤的(我知道,沒有太大的服務器人的:()):

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^abc.example.com$ 
RewriteRule ^(.*)$ http://abc.example.com/$1 [R=301] 

,但沒有運氣,所以請一些啓發

回答

1

這到底是爲我工作的解決方案:

在Plesk中我做了一個subdomain.domain.com指向可以說ABC文件夾,然後我增加了www.subdomain.domain.com也通過Plesk但指向相同的 abc文件夾。然後,我在這個abc文件夾(這個子域名的所有其他文件所在的位置)中添加了.htaccess文件,現在可以保證所有到subdomain.domain.com的請求都被重定向到www.subdomain.domain.com。這裏是我的.htaccess文件:

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

希望這會幫助像我這樣的人開始的人。

只是要注意,對於同一個文件夾內pointingthe www.subdomain的想法歸功於用戶布賴恩·懷特在serverfault

0

的.htaccess應該是這樣的:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^abc\.example\.com$ [NC] 
RewriteCond %{SERVER_PORT} =80 
RewriteRule ^(.*)$ http://abc.example.com/$1 [R=301,L] 

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^abc\.example\.com$ [NC] 
RewriteCond %{SERVER_PORT} =443 
RewriteRule ^(.*)$ https://abc.example.com/$1 [R=301,L] 

然而DNS條目代表abc.example.comwww.abc.example.com可能尚未傳播。在測試之前,您需要給它一些時間(可能有幾個小時)。

您可以使用nslookup on Windows*nix來檢查您的域名何時可用。

+0

奇怪的DNS爲ABC傳播瞬間,不知道爲什麼會這樣以www。嗯,我可能會錯過這裏的東西,導致你的重寫沒有幫助。新東西是,我現在正在獲得plesk默認頁面,但是:?我不知道它從哪裏拉出來,因爲我的服務器上沒有看到任何標有www.abc的文件夾:/ – Nikola 2011-05-04 17:03:15

+0

可能是您之後添加了CNAME條目,因此可能需要一些時間才能傳播。 – anubhava 2011-05-04 17:18:12

+0

是的,但事實是我不知道爲什麼會出現一個plesk默認頁面,以及如何更改它。 – Nikola 2011-05-04 17:31:12