文档章节

利用 ISAPI_Rewrite 做301永久转向

梦之江
 梦之江
发布于 2015/02/25 10:34
字数 840
阅读 16
收藏 0
点赞 0
评论 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
博文 19
码字总数 14829
作品 0
广州
程序员
使用Apache的模块:rewrite模块语法格式

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

mickelfeng ⋅ 2014/04/03 ⋅ 0

apache域名跳转

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

我不是瘦子 ⋅ 2017/12/06 ⋅ 0

64 位 Windows2003 II6 Helicon ISAPI_Rewrite 3 图片防盗链

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

晨曦之光 ⋅ 2012/03/09 ⋅ 0

URL 重写新手指南

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

Yomut ⋅ 2016/08/29 ⋅ 0

nginx重定向,nginx 伪静态 重定向 包括域名、目录、文件等方法

在网站建设中需要网页重定向的情况很多:如网页目录结构变动,网页重命名、网页的扩展名改变、网站域名改变等。如果不做重定向,用户的收藏和搜索引擎数据库中的旧地址只能让访客得到一个404...

沐木小布丁 ⋅ 2013/08/20 ⋅ 0

IIS服务器防盗链具体设置方法

介绍: ISAPI Rewrite是专门为IIS开发的URL伪静态程序,大家知道,搜索引擎对动态URL是不友好的,并且动态URL也显得过长,ISAPI Rewrite则完全解决了这个问题 下载: ISAPI Rewrite目前最新版本为I...

mickelfeng ⋅ 2014/02/24 ⋅ 0

nginx 301 302 重定向

nginx 301 302跳转的详细说明 server {   listen 80;   server_name abc.com;   rewrite ^/(.*) http://www.abc.com/$1 permanent;   access_log off;   } last – 基本上都用这个......

柠檬草的味道 ⋅ 2014/04/10 ⋅ 0

不同的情况 301的做法也会有所不同

不同的情况 301的做法也会有所不同 我这几天在研究网站被降权了怎么办?一般需要做个301跳转就可以,可是301跳转有那么神秘吗?带着我的疑问我开始了对我的源码网和301跳转的探秘旅程。   H...

AB模板网 ⋅ 2013/06/30 ⋅ 0

nginx 301 永久重定向

www.xxx.com 转向 xxx.com Step 1: ngnix.conf 文件里 server_name 是 xxxx.com Step 2: vhost/xxx.conf 文件里的 server_name 是 www.xxx.com 在server_name 下面 增加: rewrite ^/(.*)$ ......

chocoball ⋅ 2014/06/29 ⋅ 0

请教iis6的rewrite伪静态目录配置问题

关于伪静态的问题.规则如下: RewriteRule /doctor/?([a-zA-Z]+)?/?$ /index.php?m=content&c=doctor&a=init¶m=$1 当访问 /doctor 的时候,返回200,后面加上/也就是 /doctor/ 访问也是200...

化蝶自在飞 ⋅ 2012/10/30 ⋅ 8

没有更多内容

加载失败,请刷新页面

加载更多

下一页

内核线程、轻量级进程、用户线程

线程与进程概念 在现代操作系统中,进程支持多线程。 进程是资源管理的最小单元; 线程是程序执行的最小单元。 即线程作为调度和分配的基本单位,进程作为资源分配的基本单位 一个进程的组成...

117 ⋅ 9分钟前 ⋅ 0

elasticsearch2.4.6升级为elasticsearch-5.5.0的经历

将elasticsearch-5.5.0 中的配置 path.data 指向原来的数据路径 即 path.data: /usr/local/src/elasticsearch-2.4.6/data 注意: elasticsearch-5.5.0 需要将jdk版本升级到1.8...

晨猫 ⋅ 9分钟前 ⋅ 1

lvm讲解 磁盘故障小案例

1

oschina130111 ⋅ 13分钟前 ⋅ 0

那些提升开发人员工作效率的在线工具

本文转载自公众号 Hollis 作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的。 Hollis偏爱使用...

时刻在奔跑 ⋅ 26分钟前 ⋅ 0

restful风格 实现DELETE PUT请求 的web.xml的配置

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframe......

泉天下 ⋅ 31分钟前 ⋅ 0

Shell数组

Shell数组 Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。 bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数...

蜗牛奔跑 ⋅ 41分钟前 ⋅ 0

nmap为了开发方便 可以做简单的修改

因为nmap扫描是默认使用的是nse脚本,但是在开发的过程中需要修改后缀(主要是因为后缀为lua才能显示高亮,所以这里用一个取巧的办法) nse_main.lua文件中我们找到如下代码 local t, path = cn...

超级大黑猫 ⋅ 45分钟前 ⋅ 0

springmvc获取axios数据为null情况

场景:前端用了vue没有用ajax与后台通信,用了axios,但是在代码运行过程中发现axios传递到后台的值接受到数据为null。 问题原因:此处的问题在与axios返回给后台的数据为json类型的,后台接...

王子城 ⋅ 46分钟前 ⋅ 0

hadoop技术入门学习之发行版选择

经常会看到这样的问题:零基础学习hadoop难不难?有的人回答说:零基础学习hadoop,没有想象的那么难,也没有想象的那么容易。看到这样的答案不免觉得有些尴尬,这个问题算是白问了,因为这个...

左手的倒影 ⋅ 47分钟前 ⋅ 0

806. Number of Lines To Write String - LeetCode

Question 806. Number of Lines To Write String Solution 思路:注意一点,如果a长度为4,当前行已经用了98个单元,要另起一行。 Java实现: public int[] numberOfLines(int[] widths, Str...

yysue ⋅ 54分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部