文档章节

利用 ISAPI_Rewrite 做301永久转向

梦之江
 梦之江
发布于 2015/02/25 10:34
字数 840
阅读 16
收藏 0

ISAPI_Rewrite确实是个好东西,我们不仅用它可以实现简单的URL重写来实现搜索引擎友好(SEF)的URL形式,还可以利用 ISAPI_Rewrite 实现防盗链,今天,我们再来说一下利用ISAPI Rewrite做301永久转向。

301转向(301 Redirect : Permanently Moved),表示内容永久性转移到新的URL,这样搜索引擎就会知道内容已转移,会去抓取新的URL,因此是友好的。

注意,只有支持自定义URL重写规则的网站空间才能实现自定义的301转向。

域名间的301转向

有时,我们会在域名解析时,创建一个空的主机名,来方便用户输入网址,而省去了www。这样虽然方便了用户,但是从SEO的角度来说,是违反了URL标准化准则的,因此,我们需要对这些不统一的URL进行301重定向。

以下规则能够将steveluo.name以301重定向方式转到www.steveluo.name,这样对于搜索引擎来说是友好的。

注意:本文列出的代码中包含了2.x与3.x版本2种规则,在你使用时务必确认自己使用的版本,否则是无法工作的。

# For ISAPI_Rewrite 2.x
RewriteCond Host: ^steveluo.name$
RewriteRule (.*) http://www.steveluo.name$1 [I,RP]

# For ISAPI_Rewrite 3.x
RewriteCond %{HTTP:Host} ^steveluo.name$
RewriteRule (.*) http://www.steveluo.name$1 [NC,R=301]

整个域名下的文件访问都将被重定向,而不仅仅是首页而已!

注释:在规则最后有[I,RP]标记,通过查阅ISAPI Rewrite 2官方使用手册我们知道,I表示忽略大小写,RP表示使用301转向

页面间的301转向

当我们改变了某些页面的地址,但是又不想损失流量,就应该使用301转向,将原来的URL重定向到新的URL上,这样搜索引擎会知道页面地址变更,而不会以为这个页面出错消失了。 规则如下:

# For ISAPI_Rewrite 2.x
RewriteRule ^/oldpage.htm$ http://www.steveluo.name/newpage.htm [I,O,RP,L]

# For ISAPI_Rewrite 3.x
RewriteRule ^/oldpage.htm$ http://www.steveluo.name/newpage.htm [NC,L,R=301,O]

我们将根目录下的oldpage.htm使用301转向重定向到了http://www.steveluo.name/newpage.htm,当然,我们也可以自己指定任意目的地址,可以是站内的(同样以/pagename的形式)或站点外的(以http://开头的URL形式)。

注释:这里出现的O表示对URL进行标准化,可能是用来处理Unicode编码的地址(例如包含中文的URL)以及QueryString的内容,这里我没有测试过。而L表示Last Rule,最后一条规则,也就是后面的重写规则对他不起作用,防止被其他匹配的规则再次重写而造成混乱。

最后说明一下:本文所使用的RewriteRule(重写规则)仅适合ISAPI Rewrite 2.x以及3.x版本,因为标识符(比如[I,RP])在2.0以前版本是不支持的,会在httpd.parse.errors中提示错误。

而如果你使用的是ISAPI Rewrite 3.0以后的版本,那么2.x的规则是不兼容的,不过3.0版本提供了一个规则转换器,我们可以直接将2.0的规则导入,它会自动转换成3.0版本的规则。

转自http://www.steveluo.name/isapi-rewrite-301-move-permanently-redirect/

本文转载自:

共有 人打赏支持
梦之江
粉丝 0
博文 48
码字总数 14829
作品 0
广州
程序员
nginx 常见参数以及重定向参数配置

首先明白什么是301和302 301的含义是“永久重定向”,而302的含义是“临时重定向”。 302 重定向和网址劫持(URL hijacking)有什么关系呢?这要从搜索引擎如何处理302转向说起。从定义来说,...

测试dog
2017/10/26
0
0
apache域名跳转

域名跳转总结 > 当我们变更网站域名,或者申请多个域名指向一个网站的时候,这个时候我们就会用到域名跳转(或者叫域名重定向redirect、域名转向)。 域名跳转试验 以上测试是在centos7系统下...

我不是瘦子
2017/12/06
0
0
64 位 Windows2003 II6 Helicon ISAPI_Rewrite 3 图片防盗链

前提: 64位的Windows2003,IIS6,要求实现图片防盗链。 思路: 因为不是Apache,要费脑筋了。 系统部署使用的是IIS6+Resin3,所以图片解析是IIS的事情,想用Filter实现都不行。 自然而然地想...

晨曦之光
2012/03/09
0
0
URL 重写新手指南

URL重写是什么? 大多数动态网站的URL中都含有变量,以告知站点哪些信息需要展示给用户。比如像下面这个URL,会通知相关的脚本加载编号为7的产品: XHTML 1 http://www.example.com/showapr...

Yomut
2016/08/29
2
0
使用Apache的模块:rewrite模块语法格式

Preface 无论是对于搜索引擎还是对于访客而言,很多网站程序生成的URL并不友好,所以需要将URL以更简短的方式来重写。这种技术可以解决很多常见的问题,如:页面伪静态,域名重定向等。URL重...

mickelfeng
2014/04/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

php 使用redis锁限制并发访问类

1.并发访问限制问题 对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功。 例如换领优惠券,如果用户同一时间并发提交换领...

豆花饭烧土豆
22分钟前
0
0
Linux环境搭建 | 手把手教你配置Linux虚拟机

在上一节 「手把你教你安装Linux虚拟机」 里,我们已经安装好了Linux虚拟机,在这一节里,我们将配置安装好的Linux虚拟机,使其达到可以开发的程度。 Ubuntu刚安装完毕之后,还无法进行开发,...

良许Linux
24分钟前
0
0
Nginix开启SSL支持HTTPS访问(自签名方法)

Nginix开启SSL支持HTTPS访问(自签名方法) 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器...

openthings
40分钟前
0
0
(三)Nginx配置·续

概述 前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置 主要是以下三个 1.Nginx访问日志 2.Nginx日志切割 3.静态文件不记录日志和过期时间 Nginx访问日志 1.先看看...

杉下
今天
1
0
jquery创建类似于java的map

var map = {}; // Map map = new HashMap(); map[key] = value; // map.put(key, value); var value = map[key]; // Object value = map.get(key); var has = key in map; // boolean has = ......

SuperDabai
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部