lamp默认虚拟主机和301跳转

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lamp默认虚拟主机和301跳转相关的知识,希望对你有一定的参考价值。

在实验中我们发现,无论我们使用哪个域名都可以的,而且出现一个情况,我们只是在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

以上是关于lamp默认虚拟主机和301跳转的主要内容,如果未能解决你的问题,请参考以下文章

分享 apache 服务器的实战经验 1

虚拟主机怎么做全站301重定向跳转?

Apache强制WWW跳转以及强制HTTPS加密跳转的方法

.htaccess设置301跳转及常用技巧整理

Linux学习总结(三十四)lamp之用户认证和域名跳转

域名301跳转---模块