解决Addon域名可用主域名的子目录访问的问题
cPanel的面板存在一个问题,Addon的域名的目录是Public_html下的一个子目录(新版的cPanel可以改变这个限制,但是大部分主机商的还是有限制),所以通过 主域名/目录 的形式也可以访问这个addon的网站,这样就存在URL规范化的问题。
一般来说,这个问题并不会造成多大影响,因为只要你不要把 主域名/目录 这种形式的链接发布出去,搜索引擎一般是抓不到的,也就不会收录这种url了,另外还有一种方式就是在robots.txt文件中禁止索引addon的域名的目录,就更保险了。
今天给大家一个更彻底的解决办法,直接301转向或者返回403错误。
方案一:
将下面的rewrite(什么是Rewrite见:http://www.zzbaike.com/wiki/Rewrite )规则放到addon域名的目录下的.htaccess文件:
RewriteEngine On
RewriteCond %{HTTP_HOST} !(^www\.yourdomain\.com$) [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]
这个规则的作用和wordpress程序自身的特征一样,只要不是你设置的那个域名访问的,就自动转向到这个域名上,主域名/目录 这种形式的url自然会转向了。另外这个规则还有很多用处,例如规范www,防止有人把域名解析到你的ip上等等,当然这些是具体应用,核心就是只要不是你设置的那个域名访问的,就自动转向到这个域名上。
另外也可以针对这个问题专门写一个更具体的规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.primarydomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.addon.com/$1 [L,R=301]
这个规则的作用就是如果请求的是主域名就转向到addon域名下。所以这个规则不要放错位置,要放在addon域名的目录下,千万别放到主域名的目录下。当然也可以更进一步去匹配目录然后转向。
如果不想要转向而是禁止访问,就把每个方案的第三句修改为:
RewriteRule ^(.*)$ – [F]
因为是用rewrite实现的,只要支持.htaccess和rewrite的虚拟主机就可行,另外不论是否是cpanel主机,如果有类似问题就可以用这种方法解决.
更多阅读内容: Rewrite .htaccess 301转向
From 大漠网迹, post 解决Addon域名可用主域名的子目录访问的问题
Post Footer automatically generated by wp-posturl plugin for wordpress.
Leave a Reply