Apache域名301跳转

首先,我们来了解一下什么是域名跳转:

按自己的理解来说,就是你有多个域名,想指向一台服务器,使用一个服务器的资源

再形象一点,就是你A和B是两家人,吃饭的时候肯定是各回各家啦,于是服务器看了看A,说:"我认识你小子,你的家在X区域",看了看B说:"我也认识你小子你的家在Y区域",于是他们各自回到家中去吃饭。

但是如果A和B是一家人,是兄弟,虽然长得不一样(排除隔壁老王的嫌疑),但是还是要回到一家去吃点饭的。于是B就设置了一个301跳转,指向了A的家。

举个栗子:www.baidu.com/www.baidu.cn/www.baidu.xin等,访问的都是百度


对于我们的Apache来讲,配置域名跳转很简单,跟着KK来学习一下,康忙北鼻!

第一步:打开Apache的rewrite模块

vim /usr/local/apache2/conf/httpd.conf

在57行的地方找到如下内容

LoadModule rewrite_module modules/mod_rewrite.so

取消模块的注释符#,保证模块是被加载的状态

第二步:对相应的虚拟主机进行域名跳转301配置

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.google.hk/$1  [R=301,L]

</IfModule>


        其实RewriteCond就像我们程序中的if语句一样,表示如果符合某个或某几个条件则执行RewriteCond下面紧邻的RewriteRule语句

%{HTTP_HOST}    是指环境变量:

其他的环境变量:

HTTP_USER_AGENT   用的啥服务器

HTTP_REFERER          从哪跳过来的(上一个网页是什么)

HTTP_COOKIE             

HTTP_FORWARDED

HTTP_HOST                 跳到了哪(www.baidu.com/tmp/1.php,这里只要www.baidu.com)

HTTP_PROXY_CONNECTION

HTTP_ACCEPT

^www.aaa.com$是正则表达式,代表网址是www.aaa.com

[OR]代表或则的意思,默认情况下多条RewriteCond语句中间是使用AND连接的,如果要使用或[OR],要明确指出来。

RewriteRule ^/(.*)$ http://www.google.hk/$1 指要重写的规则是什么,这里小括号括起来的部分被后面的$1引用,如果有第二个被小括号,可以用$2引用,这句话的意思是,请求www.aaa.com/****的任何网址,都会被重定向到www.google.hk/****下


其他一些符号的意义:

[R]    强制外部重定向

[F]    禁用url返回403

[P]    强制使用代理转发

[G]    强制URL为GONE,返回410HTTP状态码

[L]    表明当前规则是最后一条规则,停止分析以后规则的重写

[N]    重新从第一条规则开始运行重写过程

[NC]  不区分大小写

[PT]  传递给下一个处理


第三步:重启服务器

/usr/local/apache2/bin/apachectl restart

至此,跳转就配置完成了


小贴士:

其实我搜索了好久,但是真正详细讲301跳转的,真没几个,希望以后有机会可以更加深入的学习,有错误的话,还是希望各位大佬指出来哈。


最后的最后,奉上几个觉得有用的东东:

RewriteCond %{REQUEST_FILENAME} !-f  //如果文件存在,就直接访问文件,不进行下面的RewriteRule.(不是文件或文件不存在就执行重写)

RewriteCond %{REQUEST_FILENAME} !-d   //#如果目录存在就直接访问目录不进行RewriteRule

RewriteCond %{REQUEST_URI} !^.*(/.css|/.js|/.gif|/.png|/.jpg|/.jpeg)$ //#如果是这些后缀的文件,就直接访问文件,不进行Rewrite

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 重写规则 【重写规则的作用范围】 可以使用在Apache主配置文件httpd.conf中 可以使用在httpd.c...
    桖辶殇阅读 1,718评论 0 0
  • Nginx简介 解决基于进程模型产生的C10K问题,请求时即使无状态连接如web服务都无法达到并发响应量级一万的现...
    魏镇坪阅读 2,090评论 0 9
  • 继续昨天的练习,这两天跟logo较劲有点一发不可收拾了,一方面因为确实是喜欢,另一方面也是因为明天动画库要跟...
    爱睡觉de猪阅读 270评论 2 1
  • 临睡前,下楼走了一圈,尽管已经夜半时分,仍然成双成对的人在河边,或者带狗狗散步。我是好久没来了,散步于...
    与姝会友阅读 202评论 0 0
  • 在那间高二年级的教室里,我觉得我的头发被人拽了一下,我回头一看,发现高林伟对我报之以一笑,那笑容里有调皮的意思,也...
    Mr_稻香老农阅读 552评论 11 15