在实验中我们发现,无论我们使用哪个域名都可以的,而且出现一个情况,我们只是在hosts文件中将某一域名与自己的ip对应,配置中并没有这个域名,也可以登录我们的discuz界面,这个并不是我们想要的。所以我们需要设定一个默认虚拟主机来将诸如此类的访问拦截。
我们只需要在配置文件httpd-vhost.conf中,在我们设置的虚拟主机前再添加一个,配置如下。
# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/tmp/123"
ServerName 2142.com
</VirtualHost>
# mkdir /tmp/123
# chmod 000 /tmp/123
# /usr/local/apache2/bin/apachectl -t
# /usr/local/apache2/bin/apachectl start
这是我们会发现上方提到的域名访问不到我们的discuz,但同时我们又发现一个问题,我们设置三个域名,虽然可以成功访问,但是主页域名不相同,这个不符合我们的正常思维,而且这个会影响搜索
所以这里使用301域名跳转的方法,虽然3个域名都可以访问,但是会跳转到一个我们指定的域名
例如,www.aaa.com访问,进入后会自动跳转到www.test.com
配置如下,写入第二个虚拟主机内
# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.aaa.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.bbb.com$
RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]
</IfModule>
运用了rewrite模块,无论使用3个域名的哪个访问,都会跳转至www.test.com
# /usr/local/apache2/bin/apachectl -t
# /usr/local/apache2/bin/apachectl start
测试
# curl -x127.0.0.1:80 www.aaa.com -I
HTTP/1.1 301 Moved Permanently
Date: Thu, 17 Nov 2016 19:05:32 GMT
Server: Apache/2.2.31 (Unix) PHP/5.6.28
Location: http://www.test.com/
Content-Type: text/html; charset=iso-8859-1
成功
本文出自 “Liew” 博客,请务必保留此出处http://walterliew.blog.51cto.com/11286797/1883498
原文地址:http://walterliew.blog.51cto.com/11286797/1883498