【Apache】绑定域名到子目录
用二级域名来访问网站的某个子系统比起用子目录方式访问在视觉上要正式,方法便是将二级域名绑定到子目录上。下面来看下Apache的两种配置方法:
1、httpd.conf 方式实现绑定
httpd.conf 是Apache服务器的配置文件,利用这个文件可以对Apache做各种运行配置。
配置方式很简单,在httpd.conf文件末尾处添加以下内容,然后重启Apache即可。
<VirtualHost m.mivkit.com:80> ServerAdmin [email protected] DocumentRoot D:/wwwroot/subdir ServerName m.mivkit.com ErrorLog logs/m-error_log.txt CustomLog logs/m_log.txt common </VirtualHost>
说明:以上配置的作用是将二级域名m.mivkit.com绑定到子目录 D:/wwwroot/subdir上,站点管理员邮箱为[email protected],错误日记写入到文件 logs/m-error_log.txt,常规日志写入到文件 logs/m_log.txt。
2、.htaccess 方式实现绑定
.htaccess 文件(或者"分布式配置文件")提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录。
在站点根目录下建立.htaccess文件(Win主机无法直接建立,可先新建a.txt文件然后在命令行中用rename a.txt .htaccess来重命名),输入以下内容保存即可,无需重启Apache。
RewriteEngine on # 把 m.mivkit.com 改为你要绑定的域名. RewriteCond %{HTTP_HOST} ^(www.)?m.mivkit.com$ # 把 subdir 改为要绑定的目录. RewriteCond %{REQUEST_URI} !^/subdir/ # 不要改以下两行. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 把 subdir 改为要绑定的目录. RewriteRule ^(.*)$ /subdir/$1 # 把 m.mivkit.com 改为你要绑定的域名 # 把 subdir 改为要绑定的目录. # subdir/ 后面是首页文件index.php, index.html…… RewriteCond %{HTTP_HOST} ^(www.)?m.mivkit.com$ RewriteRule ^(/)?$ subdir/index.php [L]
说明:以上配置的作用是将二级域名m.mivkit.com和www.m.mivkit.com都绑定到子目录/subdir(相对于站点根目录)上。
以上两种方法经实践有效,任选其一即可。
[完毕]
RewriteCond %{HTTP_HOST} ^www.baidu.com$
RewriteRule ^(.*)$ /jtjy/$1 [L]
我通过上面,把www.baidu.com绑定到了主机www/jtjy/下
结果:
访问http://www.baidu.com/mulu/ 正常
访问http://www.baidu.com/mulu 不正常,会自动跳转到http://www.baidu.com/jtjy/mulu/ 的不存在的目录 怎么回事?上面的规则怎么改?
方法一无效啊!方法二 二级域名下的index 文件能访问,但是其他文件的路径要怎么写呢?
RewriteCond %{HTTP_HOST} ^(www.)?xxsj.shyyyl.com/news.html$
RewriteRule ^(/)?$ xxsj/website/news.php[L]
这样写不对啊!有时间可以问下你不?上面的邮箱是我QQ
现在还有效么
windows主机也可以吗?