设为首页 收藏本站
查看: 1372|回复: 0

[经验分享] 用ISAPI Rewrite实现IIS 301转向(重定向跳转)

[复制链接]

尚未签到

发表于 2015-11-15 10:20:51 | 显示全部楼层 |阅读模式
  转自 远方博客 http://farlee.info/archives/url-forwarding-301-redirect-apache-iis-php-asp-jsp.html
  实现301转向的方式有很多,比如apache服务器通过修改.htaccess文件,asp,php程序通过添加301转向代码等等,具体请看301转向(重定向跳转)的实现。
  有时候为了seo优化的需要,要尽量减少搜索引擎索引网站重复页面,其中有一项重要工作就是在带www和不带www的顶级域名中选择一个让搜索引擎索引。对于Google搜索引擎,我们可以使用Google 首选域功能,另外如果是Apache服务器的话也可以通过修改.htaccess文件来实现301重定向,比如设置将www.farlee.info 301转向到farlee.info,实现方法在301转向也有介绍。
  但是如果虚拟主机是windows主机,IIS并不支持.htaccess文件,百度搜索引擎又不支持首选域设置,这时只能将一个域名301重定向到另外一个域名。那么在IIS下如何实现301重定向?其实国内很多Windows 虚拟主机空间都支持ISAPI筛选器,可以通过ISAPI Rewrite 来实现IIS下的301转向(或叫301重定向, 301跳转)。
  ISAPI Rewrite 是什么
  
ISAPI Rewrite 是在IIS下为实现类似Apache mod_rewrite功能的第三方Rewrite组件。ISAPI是Internet Server Application Program Interface的缩写,意为Internet 服务应用程序接口,是基于正则表达式的。Helicon tech 的ISAPI Rewrite 组件有免费Lite版本以及商业版,免费版只支持全局的httpd.conf 配置,商业版支持用户自定义httpd.ini文件,支持目录和站点级的类似.htaccess的配置。ISAPI Rewrite算是一个powerful URL处理引擎,现在最新版本是3.0。
  所以和Apache mod_rewrite功能一样,Windows 主机IIS 通过ISAPI筛选器不仅可以实现URL重写,还可以实现301重定向。下面介绍使用不同版本的ISAPI Rewrite组件在不同情况下的301转向代码:
  ISAPI Rewrite实现 301转向代码
  
1. 将不带www的顶级域名301重定向到带www的域名
  # ISAPI_Rewrite 2.x 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond Host: ^farlee/.info$
RewriteRule (.*) http/://www/.farlee/.info$1 [I,RP]
  # ISAPI_Rewrite 3.0 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond %{HTTP:Host} ^farlee/.info$
RewriteRule (.*) http/://www/.farlee/.info$1 [NC,R=301]
  2. 不同域名之间的301转向
  # ISAPI_Rewrite 2.x 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond %{HTTP:Host} ^isapirewrite/.com$
RewriteRule (.*) http/://www/.farlee/.info$1 [NC,R=301]
  # ISAPI_Rewrite 3.0 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond %{HTTP:Host} ^www/.isapirewrite/.com$
RewriteRule (.*) http/://www/.farlee/.info$1 [NC,R=301]
  3. 将页面301重定向到另外一个页面
  # ISAPI_Rewrite 2.x 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^/oldpage.html$ http://farlee.info/newpage.html[I,O,RP,L]
  # ISAPI_Rewrite 3.0 版本
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^/oldpage.html$ http://farlee.info/newpage.html[NC,L,R=301,O]
  注意:ISAPI_Rewrite 1.3是现在国内应用得比较多的一个老版本,它可用于url 重写,但并不适合用来实现真正的301重定向功能。建议下载最新的ISAPI_Rewrite 3.0 版本。在 url转发和301转向(重定向跳转)的实现 这篇文章介绍了一段ISAPI_Rewrite 1.3 的重定向代码,这段代码在IIS下对域名重定向虽然能够顺利跳转,但是返回的仍然是302 HTTP header,而不是301 状态码。而且该段代码用于301重定向后,在blog中的其他页面都会跳转到首页。
  这样设置以后,你的windows iis 也能实现301重定向了,不管是Google 和百度搜索引擎都不会有因为带有www和不带www的域名而产生重复页面问题了。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-139428-1-1.html 上篇帖子: 清除服务器IIS缓存的常用方法 下篇帖子: How to Install SugarCRM with SQL Server 2008 and IIS 7.0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表