windows 下 apache的二级域名的相关配置,目标是,不同的子域名可以访问不同目录下的网站:
顶级域名 =>/ www.顶级域名=>/ news.顶级域名 =>/news
1、 开启apache的mod_rewrite功能(肯定是要让它支持重写的)在httpd.conf 找到 mod_rewrite 把前面的#号去了就行,接着开启apache的虚拟主机 在httpd.conf 找到 Virtual hosts 把前面的# 号去了。
2、添加几个域名,在 C:/WINDOWS/system32/drivers/etc 目录中找到hosts 这个文件 记事本打开它,添加如下三个域名
127.0.0.1 www.顶级域名
127.0.0.1 顶级域名
127.0.0.1 news.顶级域名
3、在虚拟主机中填写相关代码 让它有权限访问 www目录,找到Apache2/conf/extra 目录下的 httpd-vhosts.conf 文件并打开 代码添加如下
<VirtualHost *:80>DocumentRoot "E:/www" // 这里是项目的目录
ServerName localhost //你的ip 或者你的域名
<Directory "E:/www"> // 这里是项目的目录
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>
</VirtualHost>
然后将www.顶级域名 绑定到 相关jobs项目所在目录 代码添加如下
<VirtualHost *:80>DocumentRoot "E:/www/job" // 这里是jobs所在的具体目录
ServerName www.顶级域名 // 你的ip 或者 你的域名
ServerAlias *.顶级域名 //这里 用 ServerAlias 让多个域名绑定到同一空间 也就是项目目录
<Directory "E:/www/job"> // 这里是jobs所在的具体目录
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from All
</Directory>
</VirtualHost>
弄好之后然后重启apache ,如果重启之后遇到apache启动报错 要查看apache的错误日志,根据需求进行修改。
4、在jobs目录下 建立 .htaccess 文件 在里面添加如下代码
RewriteEngine on#让www.jobs.com 访问根目录
RewriteCond %{HTTP_HOST} ^www.顶级域名$
RewriteCond %{REQUEST_URI} !^/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /$1
RewriteCond %{HTTP_HOST} ^www.顶级域名$
RewriteRule ^(/)?$ /index.php [L]
#让news.jobs.com 访问news目录
RewriteCond %{HTTP_HOST} ^news.顶级域名$
RewriteCond %{REQUEST_URI} !^/news/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /news/$1
RewriteCond %{HTTP_HOST} ^news.顶级域名$
RewriteRule ^(/)?$ news/index.php [L]
一切完成之后 你就可以试试 www.顶级域名 顶级域名 news.顶级域名 等访问了 就看到你想要的结果了 ,如果需要其它二级域名访问的话 按照如上的方法要重复 2 、4 步就可以了,不需要在重启apache了 ,在一切设置好测试之后用于产品中。
域名是域名商那里设置的下面是我博客上的东西
前提
俺没有DNS服务.用的是windows.要做虚拟主机
-----------------------------------------------------------------------
首先搞定dns,这个是关键...apache的虚拟主机要有dns的解析才能使用
Win9x中这个文件位于windows目录下,文件名可能是hosts.samWin2K及以后的操作系统中这个文件位于WINNT\system32\drivers\etc 目录下,文件名为hosts。
打开就能看到
127.0.0.1localhost
熟悉吧...这下知道localhost为什么也叫主机了吧
添加一个test.com和test.myz
这样好象不能用book.test.myz或者news.test.myz...这个就要用dns了...
完成如下:
127.0.0.1 localhost
127.0.0.1 test.com
127.0.0.1 test.myz
-----------------------------------------------------------------------
下面就开始做虚拟主机
我的项目目录D:/马永占
在里面建立两个文件夹做测试
一个叫myz,一个叫myz2
在httpd.conf最后加上,如下....
NameVirtualHost *:80
<VirtualHost *:80>
ServerName test.com
DocumentRoot D:/马永占/myz
</VirtualHost>
<VirtualHost *:80>
ServerName test.myz
DocumentRoot D:/马永占/myz2
</VirtualHost>
别忘了重启apache
然后可以试了
放个index.html在test文件夹下
访问test.com OK
如果出现403,请查看apache中的目录权限设置
出现404,请查看上面写的documentroot是否正确,再看看文件夹里是否有文件....对了,也可以把Include conf/extra/httpd-vhosts.conf前面的#去掉
然后去extra文件夹里找那个文件.在里面写VirtualHost
注意:写了VirtualHost后如果遇到没有的,就默认执行第一个VirtualHost
http://blog.csdn.net/mayongzhan/archive/2007/12/20/1956214.aspx
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)