php uri 重写多域名,Apache重写多域名转向一个域名

以下直接举例说明:

例一、在一个虚拟主机里定义的Rewrite规则。功能是把client请求的URL地址前缀不是www.linuxidc.net和70.40.213.183都跳转到主机前缀为 http://www.linuxidc.net。这样就避免相同内容的网页有多个指向的域名,如http://linuxidc.net,而不利于SEO。

RewriteEngine on #打开rewirte功能

RewriteCond %{HTTP_HOST} !^www.linuxidc.net [NC] #声明Client请求的URL地址中前缀不是www.kiya.cn,其中 [NC] 的意思是忽略大小写

RewriteCond %{HTTP_HOST} !^70.40.213.183 [NC] #声明Client请求的URL地址中前缀不是70.40.213.183

RewriteCond %{HTTP_HOST} !^$ #声明Client请求的主机中前缀不为空

RewriteRule ^(.*) http://www.linuxidc.net/ [L] #含义是如果Client请求的主机中的前缀符合上述条件,则直接进行跳转到http://linuxidcnet/,[L]意味着立即停止重写操作,并 不再应用其他重写规则。这里的.*是指匹配所有URL中不包含换行字符,()括号的功能是把所有的字符做一个标记,以便于后面的应用.就是引用前面里的 (.*)字符。

例二、启用新域名为www.88181.com之后。需要将原来的域名ss.linuxidc.net, 以及论坛所在地址ss.linuxidc.net/bbs/定向到新的域名,以便用户可以找到,并且使原来的论坛 URL 继续有效而不出现 404 未找到。比如原来的http://ss.linuxidc.net/bbs/tread-60.html, 让它在新的域名下继续有效,点击后转发到http://bbs.88181.com/tread-60.html;而其他网页,如原先的http: //ss.linuxidc.net/purchase不会跳转到二级域名bbs.88181.com/purchase上,而是到 www.88181.com/purchase。

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/bbs/

RewriteRule ^bbs/(.*) http://bbs.linuxidc.net/$1 [R=permanent,L]

RewriteCond %{REQUEST_URI} !^/bbs/

RewriteRule ^(.*) http://www.88181.com/$1 [R=permanent,L]

例三、同时达到下面两个要求:

1.用http://www.linuxidc.com/xxx.php 来访问 http://www.linuxidc.com/xxx/

2.用http://yyy.linuxidc.com 来访问 http://www.linuxidc.com/user.php?username=yyy 的功能

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.linuxidc.com

RewriteCond %{REQUEST_URI} !^user.php$

RewriteCond %{REQUEST_URI} .php$

RewriteRule (.*).php$ http://www.linuxidc.com/$1/ [R]

RewriteCond %{HTTP_HOST} !^www.linuxidc.com

RewriteRule ^(.+) %{HTTP_HOST} [C]

RewriteRule ^([^.]+).linuxidc.com http://www.linuxidc.com/user.php?username=$1

例四、将URL地址 /type.php?typeid=* 跳转至 /type*.html,URL地址 /type.php?typeid=*&page=* 跳转至 /type*page*.html

RewriteRule ^/type([0-9]+).html$ /type.php?typeid=$1 [PT]

RewriteRule ^/type([0-9]+)page([0-9]+).html$ /type.php?typeid=$1&page=$2 [PT]

相信通过以上四个简单的例子,我们已经能够写出简单的Apache Rewrite的URL跳转了。0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值