2013-04-01 99 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个条件。