ღ Miranda

绑定域名到子目录

通过配置.htaccess文件实现子目录绑定二级域名的方法。

我们在虚拟主机上安装论坛或者博客的时候,为了便于管理,我们都会安装在根目录(www/web目录)下的一个文件夹中,比如,我安装一个Discuz论坛,我就会在根目录下新建一个bbs目录,然后将Discuz安装程序上传到该目录进行安装,这样安装完成以后,我们访问该论坛的地址就变成:http://www.example.com/bbs (http://www.example.com/bbs/forum.php),但是这样就会有点不舒服,毕竟我们的域名是:http://www.example.com ,我们只想通过该域名就可以直接访问我们的论坛,而不用再加上一个bbs子目录,这时候URL转发记录上场了,他就是为了解决该类问题而诞生的,让人它也可以用来实现URL伪静态。

新建.htaccess文件

在本地新建.htaccess文件:

使用ftp上传工具上传到网站的根目录(www/web目录),注意,这里一定要是网站的根目录。现在只要你访问:http://www.example.com就可以访问论坛了。

.htaccess文件解释

表示重写引擎开,关闭off。

表示重写条件,前面%{HTTP_HOST}表示当前访问的网址,只是指前缀部分,格式是www.example.com不包括“http://”和“/”,^表示字符串开始,$表示字符串结尾,.表示转义的. ,如果不转义也行,推荐转义,防止有些服务器不支持,?表示前面括号www.出现0次或1次,这句规则的意思就是如果访问的网址是example.com或者 www.example.com就执行以下的语句,不符合就跳过。还有,不能保证每个人输入的网址都是小写的,如果输入大写的呢,linux系统是区分大小写的,所以应该在RewriteCond后添加[NC]忽略大小写的。

也是重写条件,%{REQUEST_URI}表示访问的相对地址,就是相对根目录的地址,就是域名/后面的成分,格式上包括最前面的“/”,!表示非,这句语句表示访问的地址不以/bbs/开头,只是开头^,没有结尾$。

这两句语句的意思是请求的文件或路径是不存在的,如果文件或路径存在将返回已经存在的文件或路径。

表示重写规则,最重要的部分,意思是当上面的RewriteCond条件都满足的时候,将会执行此重写规则,^(.*)$是一个正则表达的 匹配,匹配的是当前请求的URL,^(.*)$意思是匹配当前URL任意字符,.表示任意单个字符,*表示匹配0次或N次(N>0),后面 /bbs/$1是重写成分,意思是将前面匹配的字符重写成/bbs/$1,这个$1表示反向匹配,引用的是前面第一个圆括号的成分,即^(.*)$中 的.* 。

发表评论

电子邮件地址不会被公开。