一个站点难免会有多个域名,而多个域名总得有一个主次!譬如说有两个网站www.test2.com和[url]www.abc.com [/url],我们运行时不管是用那一个总会跳转到www.test2.com 上,那么这个行为就叫作域名跳转!
以apache为例说明怎么设置一个域名跳转:
基于服务器级的(httpd.conf)有两种方法,一种是在httpd.conf的全局下直接利用RewriteEngine on来打开rewrite功能;另一种是在局部里利用RewriteEngine on来打开rewrite功能,下面将会举例说明,需要注意的是,必须在每个virtualhost里用RewriteEngine on来打开rewrite功能,否则virtualhost里没有RewriteEngine on它里面的规则也不会生效!
设置一个域名301跳转,使www.abc.com跳转到[url]www.test2.com [/url]
1
2
3
4
5
6
在虚拟主机中加入以下配置:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.abcde.com $
RewriteRule ^/(.*)$ http://www.test2.com/ $1 [R=301,L]
</IfModule>
然后检查下看是否有错误:
1
2
[iyunv@nulifendou ~]# /usr/local/apache2/bin/apachectl -t
Syntax OK
若出现 Syntax OK,则表示未出现错误。然后重启,在浏览器里实验:
RewriteEngine on #打开rewirte功能
RewriteCond %{HTTP_HOST} ^www.abcde.com [NC] #声明Client请求的主机中前缀是www.abcde.com , 其中 [NC] 的意思是忽略大小写
RewriteCond %{HTTP_HOST} !^202.91.246.20 [NC] #声明Client请求的主机中前缀不是202.91.246.20,其中 [NC] 的意思是忽略大小写
RewriteCond %{HTTP_HOST} !^$ #声明Client请求的主机中前缀不为空
RewriteRule ^(.*) http://www.tset2.com/ [R=301,L] #含义是如果Client请求的主机中的前缀符合上述条件,则直接进行跳转到http://www.test2.com/ ,[L]意味着立即停止重写操作,并 不再应用其他重写规则。这里的.*是指匹配所有URL中不包含换行字符,()括号的功能是把所有的字符做一个标记,以便于后面的应用.就是引用前面里的 (.*)字符。R=301表示状态码,301表示永久重定向,302表示临时重定向!
设置多个域名的跳转:
1
2
3
4
5
6
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.abcde.com [OR]//or表示或者的意思,如果不加则是且的意思!
RewriteCond %{HTTP_HOST} ^www.abc.com $
RewriteRule ^/(.*)$ http://www.test2.com/ $1 [R=301,L]
</IfModule>
Apache Rewrite规则修正符
1) R 强制外部重定向
2) F 禁用URL,返回403HTTP状态码。
3) G 强制URL为GONE,返回410HTTP状态码。
4) P 强制使用代理转发。
5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N 重新从第一条规则开始运行重写过程。
7) C 与下一条规则关联
如果规则匹配则正常处理,以下修正符无效
8) T=MIME-type(force MIME type) 强制MIME类型
9) NS 只用于不是内部子请求
10) NC 不区分大小写
11) QSA 追加请求字符串
12) NE 不在输出转义特殊字符 \%3d$1 等价于 =$1
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com