IIS使用 URL Rewrite Module 2.0组件 设置伪静态的方法

简体中文版WIn10无法安装,需要改注册表,

HKEY_LOCAL_MACHINESOFTWAREMicrosoftInetStp 

 MajorVersion 项,这个也是 dword 值 10(注意是十进制),把它改成9。

简体中文版下载地址是:http://download.microsoft.com/download/4/E/7/4E7ECE9A-DF55-4F90-A354-B497072BDE0A/rewrite_x64_zh-CN.msi

URL Rewrite Module 2.0

主页 有下载地址和相关使用文档

http://www.iis.net/downloads/microsoft/url-rewrite

双击下载完成的文件,下一步、下一步到安装完成 

    

   重新打开IIS发现多了个URL Rewrite项,打开全E文呀,不用怕其实配置还是很简单的……

如果我们要添加一个伪静态规则那么点击Add Rules,选择 Blank rule

我们只需要填写三个部分

name是这个规则的名称,可以随便取一个

Pattern是匹配规则

Action Properties是真实的地址

还有个Test pattern是用来测试匹配规则是否正确,例如我想测试一下^category/(.+).html$ 这个匹配设置,Test Results还很贴心的给出了匹配结果和我们需要的参数列表,其中 {R:1}就是我想要的参数,可以在 Rewrite URL中使用: cn/index.php?o={R:1}  是不是很简单~

顺便提一下:我在测试的时候不小心在正则表达式后面多加了个空格,结果总是匹配失败,所以大家要注意匹配规则的正则表达式前后不要带空格~

URLRewrite的规则

^category/(.+).html$                cn/index.php?o={R:1}
^substance/(.+)_(.+).html$     cn/index.php?o={R:1}&id={R:2}

熟悉了规则我们可以不用这个工具自己手工写URL匹配规则了,在网站根目录下修改web.config文件,system.webServer节点下增加rewrite项,修改内容为:

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="category">
                    <match url="^category/(.+).html$" />
                    <action type="Rewrite" url="cn/index.php?o={R:1}" />
                </rule>
                <rule name="substance">
                    <match url="^substance/(.+)_(.+).html$" />
                    <action type="Rewrite" url="cn/index.php?o={R:1}&amp;id={R:2}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
复制代码
原文地址:https://www.cnblogs.com/simadi/p/4787488.html