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

时间:2023-03-10 02:37:15
IIS使用 URL Rewrite Module 2.0组件 设置伪静态的方法

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

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp

 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 Module 2.0组件 设置伪静态的方法

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

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

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

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

我们只需要填写三个部分

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

Pattern是匹配规则

Action Properties是真实的地址

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

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

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

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

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项,修改内容为:

IIS使用 URL Rewrite Module 2.0组件 设置伪静态的方法
<?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>
IIS使用 URL Rewrite Module 2.0组件 设置伪静态的方法