2013-04-01 95 views
0

雖然回來了很多的幫助,我把這些代碼放在一起,並添加了排除我的插件域。這些是獨立的域,其自己的文件夾位於public_html中。儘管服務器將它們視爲子域名。如果沒有排除,所有網址都會重定向到主域名。所以一切都很好。但現在我正在進入域名,需要託管很多域名。每次我添加一個域時,我都必須進入主站點htaccess並將其添加到代碼中以排除。這是一個痛苦。無論如何重寫這段代碼,所以它自動執行它,所以我不必輸入每個新域?需要幫助修改這個htaccess代碼嗎?

該代碼目前剝離index.html/PHP和重寫到文件夾。當沒有人存在時強制www。

所以根(/)是主要區域。並且/ addondomain是插件域的位置。

謝謝您的幫助

# 301 permanent redirect index.html(htm) to folder with exclusion for addon domains 
RewriteCond %{HTTP_HOST} !(addondomain\.com) 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.html?\ HTTP/ 
RewriteRule ^(([^/]+/)*)index\.html?$ http://www.maindomain.com/$1 [R=301,L] 

# 301 permanent redirect non-www (non-canonical) to www with exclusion for addon domains 
RewriteCond %{HTTP_HOST} !(addondomain\.com) 
RewriteCond %{HTTP_HOST} !^(www\.maindomain\.com)?$ 
RewriteRule (.*) http://www.maindomain.com/$1 [R=301,L] 

回答

0

如果我的理解沒錯,爲什麼不反其道而行之?

確保規則僅適用於(www.)maindomain.com。像這樣的:

# Place this rule first. 
# Instead of excluding, add *www* only to main domain when necessary: 
RewriteCond %{HTTP_HOST} ^maindomain\.com [NC] 
RewriteRule ^(.*) http://www.maindomain.com/$1 [R=301,L] 

# Instead of excluding, use the rule only for main domain: 
RewriteCond %{HTTP_HOST} ^www\.maindomain\.com  [NC] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.html?\ HTTP/ 
RewriteRule ^(([^/]+/)*)index\.html?$ /$1 [R=301,L] 

此規則集應在根目錄中主域被放置在.htaccess文件。

我沒有測試或修改規則,不能說他們是否按預期工作,只是在每個條件中替換了1個條件。