热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

apache301重定向与重定向规则

301重定向就是向浏览器返回一个永久性重定向状态码(301),表示此资源的位置变动是永久性的,关于后面的R301,L是重定向的参数。这里的R可以写数字或者单词。

301重定向就是向浏览器返回一个永久性重定向状态码(301),表示此资源的位置变动是永久性的,关于后面的R=301,L是重定向的参数。这里的R可以写数字或者单词,所以还可以写成R=permanent表示永久重定向。L表示重写操作停止。

apache主机通过htaccess文件来实现301重定向的方法,首先看下面代码

  1. RewriteEngine on 
  2. RewriteCond %{HTTP_HOST} ^(aaa.org)(:80)? [NC] 
  3. RewriteRule ^(.*) http://www.phpfensi.com/$1 [R=301,L] 

关于后面的R=301,L是重定向的参数。这里的R可以写数字或者单词,所以还可以写成R=permanent表示永久重定向。

L表示重写操作停止

permanent 返回一个永久性重定向状态码(301),表示此资源的位置变动是永久性的

我们在做重定向的时候也许会见到另外一种写法

  1. Redirect 301 /old.html http://www.phpfensi.com/new.html 
  2. Redirect permanent /one http://www.phpfensi.com/two 
  3. RedirectMatch 301 (.*).gif$ http://www.phpfensi.com/images/$1.jpg 

下面再来介绍Linux/unix服务器,只限于这两种服务器301

把没有www的域名301重定向到带www的域名

新建一个.htaccess文件,增加如下代码:

  1. RewriteEngine On 
  2. RewriteCond %{HTTP_HOST} !^www.url.com$ [NC] 
  3. RewriteRule ^(.*)$ http://www.url.com/$1 [L,R=301] 

apache 301重定向到单个url

  1. RewriteEngine On 
  2. Redirect permanent /old-directory/old-file.html http://www.url.com/new-directory/new-file.html 

php 301重定向

  1. Header( "HTTP/1.1 301 Moved Permanently" );  
  2. Header( "Location: http://www.url.com" );  
  3. ?> 

Nginx 301重定向

在对应的Nginx配置文件中加入如下过滤规则和重写规则:第一种情况:访问A站定向到B站
 
  1. server { 
  2. server_name www.A.com ; 
  3. rewrite ^(.*) http://www.B.com$1 permanent; 

第二种情况:不是访问A站的全部重定向到指定页面

  1. server { 
  2. server_name www.A.com; 
  3. if ($host != 'A.com' ) { 
  4. rewrite ^/(.*)$ http://www.B.com/$1 permanent; 

推荐阅读
author-avatar
woshishuia小姐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有