2013-08-30 100 views
1

我有多個頂級域名(domainX.com,domainY.net,...)指向同一個文件夾。在這個文件夾中,我想添加一個.htaccess文件,將所有不是domainY.com的www和非www網址重定向到domainY.com。.htaccess:多個頂級域名(TLD)到1個頂級域名(不包括子域名)

然而這裏有一個轉折點。我有一些子域名:alfa.domainY.com和beta.domainY.com以及gamma.domainY.com設置,在我所有的測試中都保持重定向到domainY.com。

任何人都可以在這裏給我一段成功的代碼嗎?

編輯:也許還要加一些#Comments,我注意到這裏大多數答案都沒有,我認爲這意味着它們中的一些不能被重用,因爲人們不知道他們做了什麼。之後我也可以自己添加這個。

回答

1

嘗試增加這些規則,以你的文檔根目錄的htaccess文件:

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

的表達式匹配的主機將任何alpha.domainY.net失敗,因爲它只是對TLD匹配(.NET )和域(domainY)。

第一行打開重寫引擎。

第二行,條件,是應用於緊隨的規則的真/假表達式。在這種情況下,它會檢查請求的Host:標題,如果它的domainY.net結尾,則由於前面的!,條件將失敗。

第三行是規則,URI用於匹配模式^(.*)$,它基本上匹配所有內容,並通過括號捕獲。然後下一位是目標。如果規則匹配,它是通過匹配所有內容匹配的,則會應用目標,在這種情況下,它會將瀏覽器重定向到domainY.net,並通過正則表達式反向引用$1傳遞相同的URI。

+0

謝謝喬恩!這是完美的。我必須承認不完全理解代碼。你介意在內部添加一些評論來解釋它。這種方式對未來的使用來說也是一個很好的資源! – WouterB