使用IIS7+ URL Rewrite Module 进行301重定向

作者:翅膀的初衷 来源:本站原创 发布时间:2014-06-30 查看数:59670

以前觉得apache中的.htaccess 十分好用,主要是他可以轻松配置301重定向!

其实在网站运营中,301是非常有用且非常常用的功能,比如,我们经常都会把带www的301向不带www的域名(也有反之将不带www的301到www的),或者将多域名301到一个域名,来避免权重分散,是SEO十分重要的一种手段。

但是在原生的IIS6.0中,实现301,需要新建一个站点,使部分虚拟主机用户十分不方便。

好在WIN2008以上版本(IIS7+)中,微软官方终于提供了一个URL Rewrite Module,不仅可以实现URL重写,还同样支持301配置,更重要的是,它支持从.htaccess中导入规则!

{width="256" height="225"}

{width="600" height="398"}

URL Rewrite Module是一个基于规则的URL重写引擎,用于在URL被Web服务器处理之前改变请求的URL。对于动态Web应用程序,它可以为用户和搜索引擎提供友好的URL,URL重写和重定向是基于HTTP头和服务器变量的,并可以对站点内容进行访问控制。

那么我们如何写义301呢,只要新增加一条规则,将action的type指定为Redirect即可。示例代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Add www" patternSyntax="Wildcard" stopProcessing="true">
                    <match url="*" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="www.jiniannet.com" negate="true" />
                    </conditions>
                    <action type="Redirect" url="http://www.jiniannet.com/{R:1}" />
                </rule>
            </rules>
        </rewrite>
        <urlCompression doStaticCompression="true" doDynamicCompression="true" />
    </system.webServer>
</configuration>

注意,它的配置文件为web.config,如果是asp.net网站,本身是自带这个文件的,那么只要将内容合并过去即可。