htaccess命令阻止主站点通过子目录访问?

时间:2011-04-27 20:03:51

标签: .htaccess mod-rewrite rewrite redirect

我有一个主域设置(映射到Web根目录),然后是一些插件域(每个域都有自己的web根目录下的文件夹)。目前,您可以访问www.masterdomain.com/addondomainsubdir并访问与访问www.addondomain.com(映射到/ public_html / addondomainsubdir)时相同的页面。我想阻止这一点,所以如果你访问www.masterdomain.com/addondomainsubdir然后它会进行301重定向到www.addondomain.com。新的addondomain.com网站是一个单页网站,因此它不必映射任何其他页面。

将规则添加到web根目录中的htaccess文件不会影响任何东西,因为子目录存在很奇怪,因为我认为htaccess命令应该工作,即使有匹配的子目录(我已经尝试了下面的工作,当没有匹配子目录):

RewriteRule ^addondomainsubdir?$ http://www.addondomain.com [NC,R=301,L]

逻辑上给它到达这个目录我想我需要在addondomainsubdir目录中的htaccess文件中添加一个命令,但是没有任何效果(我已经设置了各种其他规则并且它们工作正常)。

如果有人解释纠正这个问题的最佳方法,我会非常感激吗?

非常感谢你的帮助,

戴夫

3 个答案:

答案 0 :(得分:1)

我知道这是一篇旧帖子,但从未成功回答过。因此,对于你们所有人通过搜索找到这个,这应该做OP所要求的。

将此行添加到.htaccess文件中:

redirect permanent /addondomainsubdir/ http://www.addondomain.com

答案 1 :(得分:0)

在.htaccess中试用这些规则:

Options +FollowSymlinks -MultiViews
RewriteEngine on

# for http
RewriteCond %{HTTP_HOST} ^(www\.)?masterdomain\.com$ [NC]
RewriteCond %{SERVER_PORT} =80
RewriteRule ^([^/]+)/?$ http://www.$1.com/ [R=301,L]

# for https
RewriteCond %{HTTP_HOST} ^(www\.)?masterdomain\.com$ [NC]
RewriteCond %{SERVER_PORT} =443
RewriteRule ^([^/]+)/?$ https://www.$1.com/ [R=301,L]

答案 2 :(得分:0)

不是在主.htaccess中放置规则,而是为每个附加域创建一个.htaccess,将每个域放在相应的子目录中。

RewriteEngine on

RewriteCond %{HTTP_HOST} masterdomain\.com$ [NC]
RewriteRule ^addondomainsubdir(.*)$ http://www.addondomain.com/$1 [R=301,L]