首页 > 常识 > 互联网 > 网站制作 > 常见问题

一个用顶级域名绑定子目录的方法

作者:热心站长  时间:2017-03-10
描述:强烈不建议利用.htaccess将主域名绑定到子目录,问题一大堆(当然如果只是几个页面就没什么问题,而且页面名称不能与根目录有重复,不然得一个个设置很麻烦。而且不能设置404,一旦404错误会直接解析到根目录首页)
此适用于用顶级域名绑定子目录,如果不是,基本可以无视。
 
BUG:(子)域名绑定子目录时,访问(子)域名会自动跳到根目录首页。
 
解决方法:检查子目录的.htaccess文件。
有无类似下面的语句:
rewritecond %{HTTP_HOST} ^idcspy.org$
rewriterule ^(.*) http://www.idcspy.org/$1 [R=301,L]
 
如果有,请删除。这样子域名访问就正常了。
 
这时候又出现一个问题。
如果子目录绑定的是顶级域名,怎么做301重定向把网站入口单一化,只剩下www或不带www的根域名?
 
有些人可能就会把301设置在根目录的.htaccess文件。
rewritecond %{HTTP_HOST} ^idcspy.org$
rewriterule ^(.*) http://www.idcspy.org/$1 [R=301,L]
 
这样的做法我也测试过了,会造成rewritecond %{HTTP_HOST} ^后面的域名无法访问。这样虽然入口也是只剩下一个,可是对用户体验并不好(输入另外一个时无法访问网站)
 
还有些人就使用了GoDaddy管理面板的301设置。这个方法很好,但是,也会出现一些问题,他会自动更改你的.htaccess文件,是你以前做的伪静态设置和301失效。不过,能看懂.htaccess的人,都会修改,使原来的设置重新生效(GoDaddy并不会删除你的.htaccess语句,但是会调动一些语句,使原来的设置失效。)
 
当然这个方法只适用于能看懂.htaccess的人。
 
在这里我介绍一下我的方法。
 
在根目录的.htaccess文件中,选择适当位置(不要在根目录301和伪静态规则之间,推荐在根目录域名301规则的上方),添加如下代码:
 
rewritecond %{HTTP_HOST} ^idcspy.org$
rewriterule ^idcspy/(.*)$ http://www.idcspy.org/$1 [R=301,L]
 
有的人可能会说,这不是和上面的一样吗?
或许我换个方式呈现代码,你就会发现其中的不同。
 
rewritecond %{HTTP_HOST} ^你的域名$
rewriterule ^子目录名称/(.*)$ http://www.你的域名/$1 [R=301,L]
 
呵呵,只要在规则前面,指定好生效目录就OK了。
 
下面奉上我的规则,大家可以参照修改。
 
#伪静态开启
<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
RewriteEngine on
RewriteBase /
#下面是程序需要,请无视
addhandler x-httpd-php-cgi .php4
addhandler x-httpd-php5-cgi .php5
addhandler x-httpd-php5-cgi .php
#下面这个就是子目录301设置
rewritecond %{HTTP_HOST} ^5535.cc$
rewriterule ^5535/(.*)$ http://www.5535.cc/$1 [R=301,L]
#根目录301设置以及伪静态规则
rewritecond %{HTTP_HOST} ^9pintang.com$
rewriterule ^(.*) http://www.9pintang.com/$1 [R=301,L]
rewriterule ^txt/(.*).html$ modules/article/articleinfo.php?id=$1
rewriterule ^list/0(.*)_(.*).html$ modules/article/articlelist.php?class=$1&page=$2
rewriterule ^list/(.*)_(.*).html$ modules/article/articlelist.php?class=$1&page=$2
rewriterule ^class/(.*)_(.*).html$ modules/article/index.php?initial=$1&page=$2
rewriterule ^top/(.*)_(.*).html$ modules/article/toplist.php?sort=$1&page=$2
#下面这个我也不知道,貌似网上生成的.htaccess都带上了,也没什么影响。
order deny,allow
 
这个问题或许和这个也多少关联,不过他的情况是倒过来了,可能也是.htaccess文件设置错误导致。万恶的.htaccess,甚至可以阻止DNS改出去(DNS明明已经改变,但是访问域名会访问.htaccess指定的目录文件)
强烈不建议利用.htaccess将主域名绑定到子目录,问题一大堆(当然如果只是几个页面就没什么问题,而且页面名称不能与根目录有重复,不然得一个个设置很麻烦。而且不能设置404,一旦404错误会直接解析到根目录首页)
 
访问到根目录多是因为域名刚绑定,服务器组还没有完全更新
额,这个也是一个原因,但是如果长时间还是这样,那绝对是.htaccess的问题了,亲身体验过。另外,子目录的伪静态规则可以直接在子目录的.htaccess中设置

从手机浏览器访问《生活宝典》

站内搜索
无相关信息
微商帮
世界网站大全
中国科研团队:大象的长鼻子是如何越变越长了
中国科研团队:大象的长
自己是否能够像自己想的那样做成一件事,身旁人的判断会比自己准确
自己是否能够像自己想
火宫殿:吃喝玩乐看,烧香拜神佛,红火的庙会经济
火宫殿:吃喝玩乐看,烧香
眼见为实也不为实,更须谨慎看到的并非全貌
眼见为实也不为实,更须