关于网站二级域名的设置
产品网站的需要,网站需要分设几个二级域名作为独立入口进行访问。
服务器是centos6.3,环境暂时用了xampp集成环境。
在设置二级域名的时候发现如下两张二级域名的设置方式,推荐使用第二种,无需重启,url也干净没有小尾巴。
1、VirtualHost方式
找到apache配置文件httpd.conf进行配置
设置权限路径:
DocumentRoot "/opt/lampp/htdocs"
<Directory "/opt/lampp/htdocs">
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Require all granted
</Directory>
httpd.conf配置中招到:
# Virtual hosts
#Include etc/extra/httpd-vhosts.conf
去掉Include etc/extra/httpd-vhosts.conf前的#号
对应etc/extra/文件目录下找到httpd-vhosts.conf
httpd-vhosts.conf
文件配置:
<VirtualHost *:80>
ServerAdmin host@abc.com
DocumentRoot "/opt/lampp/htdocs/www"
ServerName www.abc.com
ErrorLog "logs/www.abc.com-error_log"
CustomLog "logs/dummywww.abc.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin host@joyoget.com
UseCanonicalName Off
DocumentRoot "/opt/lampp/htdocs/test"
ServerName test.abc.com
ErrorLog "logs/dummy-test.abc.com-error_log"
CustomLog "logs/dummy-test.abc.com-access_log" common
</VirtualHost>
配置中www.abc.com为主域名,test.abc.com为二级域名,分别配置相应的文件地址:/opt/lampp/htdocs/www,/opt/lampp/htdocs/test
配置完成充值apache即可。
该配置方式简单,但会带来一个问题,在访问二级域名的时候,test.abc.com会带个小尾巴,变成如:test.abc.com/index.php这样的url,给人的体验不好。
因此,又用到了第二中方式。
2、RewriteEngine方式
还是打开httpd.conf
设置权限路径:
DocumentRoot "/opt/lampp/htdocs"
<Directory "/opt/lampp/htdocs">
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Require all granted
</Directory>
开启LoadModule rewrite_module modules/mod_rewrite.so
在配置末尾增加如下代码:
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/opt/lampp/etc/vhost.map
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
/opt/lampp/etc/vhost.map文件地址,放在httpd.conf同一目录即可
创建文件:vhost.map放在上述地址中
vhost.map配置:
www.abc.com /opt/lampp/htdocs/www
test1.abc.com /opt/lampp/htdocs/test1
test2.abc.com /opt/lampp/htdocs/test2
不需重启apache,访问test1.abc.com,小尾巴没了,O(∩_∩)O哈哈~