文档章节

利用 ISAPI_Rewrite 做301永久转向

梦之江
 梦之江
发布于 2015/02/25 10:34
字数 840
阅读 17
收藏 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/

本文转载自:

共有 人打赏支持
上一篇: php常用函数收集
下一篇: Apache 性能优化
梦之江
粉丝 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
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
IIS服务器防盗链具体设置方法

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

mickelfeng
2014/02/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ubuntu美化记,-修改皮肤,安装工具。

事情由来 最近系统盘坏了,换了新SSD,也换了新版的ubuntu 18.04LTS;不得不说,ubuntu 的桌面搞的越来越漂亮了。 把调整过的zsh shell样式,截个图上来镇一下楼: 添加了对python virtuale...

janl
3分钟前
0
0
阿里云物联网边缘计算加载MQTT驱动

写在前面 本文在LinkEdge快速入门样例驱动的基础上,加载了MQTT订阅的客户端,使得边缘端容器可以通过MQTT获得外部数据。 1. 系统需求 物联网边缘计算平台,又名Link IoT Edge[1]。在物联网边...

阿里云云栖社区
4分钟前
0
0
错误: 找不到或无法加载主类

在IDEA的使用过程中,经常断掉服务或者重启服务,最近断掉服务重启时突然遇到了一个启动报错: 错误:找不到或无法加载主类 猜测:1,未能成功编译; 尝试:菜单---》Build---》Rebuild Pro...

安小乐
20分钟前
1
0
vue路由传参,刷新页面,引发的bug

最近遇到一个bug 通过vue路由跳转到页面, 然后接参控制(v-if ),成功显示 而刷新页面,显示失败。 苦苦地找了半天原因,打印参数发现正确,再打印下类型......,路由跳过来会保持传参时的...

hanbb
21分钟前
1
0
【58沈剑 架构师之路】InnoDB,select为啥会阻塞insert?

MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。 但是,如《InnoDB,5项最佳实践》所述,如果查询没有命中索引,也将退化为表锁。 InnoDB的细粒度锁,是实现在索引记录上的。 一,Inn...

张锦飞
24分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部