阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

手机号码,快捷登录

老司机
查看: 2132|回复: 0

[转帖] ISAPI Rewrite实现IIS 301转向(重定向跳转)【多域名网站解决方案】

[复制链接]
  • TA的每日心情
    开心
    2021-8-30 00:00
  • 签到天数: 35 天

    [LV.5]常住居民I

    发表于 2011-9-14 12:48:08 | 显示全部楼层 |阅读模式



    实现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 Inte**ce的缩写,意为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. 1. 将不带www的**域名301重定向到带www的域名# ISAPI_Rewrite 2.x 版本
    2. [ISAPI_Rewrite]
    3. # 3600 = 1 hour
    4. CacheClockRate 3600
    5. RepeatLimit 32
    6. RewriteCond Host: ^farlee\.info$
    7. RewriteRule (.*) http\://www\.farlee\.info$1 [I,RP]

    8. # ISAPI_Rewrite 3.0 版本
    9. [ISAPI_Rewrite]
    10. # 3600 = 1 hour
    11. CacheClockRate 3600
    12. RepeatLimit 32
    13. RewriteCond %{HTTP:Host} ^farlee\.info$
    14. RewriteRule (.*) http\://www\.farlee\.info$1 [NC,R=301]
    15. 2. 不同域名之间的301转向# ISAPI_Rewrite 2.x 版本
    16. [ISAPI_Rewrite]
    17. # 3600 = 1 hour
    18. CacheClockRate 3600
    19. RepeatLimit 32
    20. RewriteCond %{HTTP:Host} ^isapirewrite\.com$
    21. RewriteRule (.*) http\://www\.farlee\.info$1 [NC,R=301]

    22. # ISAPI_Rewrite 3.0 版本
    23. [ISAPI_Rewrite]
    24. # 3600 = 1 hour
    25. CacheClockRate 3600
    26. RepeatLimit 32
    27. RewriteCond %{HTTP:Host} ^www\.isapirewrite\.com$
    28. RewriteRule (.*) http\://www\.farlee\.info$1 [NC,R=301]
    29. 3. 将页面301重定向到另外一个页面# ISAPI_Rewrite 2.x 版本
    30. [ISAPI_Rewrite]
    31. # 3600 = 1 hour
    32. CacheClockRate 3600
    33. RepeatLimit 32
    34. RewriteRule ^/oldpage.html$ http://farlee.info/newpage.html[I,O,RP,L]

    35. # ISAPI_Rewrite 3.0 版本
    36. [ISAPI_Rewrite]
    37. # 3600 = 1 hour
    38. CacheClockRate 3600
    39. RepeatLimit 32
    40. 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的域名而产生重复页面问题了。


    该贴已经同步到 sunwy的微博
    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

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