win2012 r2 + IIS8.5 +url重写模块2.0
1、安装 Url Rewrite 2.0 https://www.microsoft.com/zh-cn/download/details.aspx?id=7435
下载后双击,安装即可在“IIS管理器”中找到 “URL重写”图标。
2、双击“URL重写”,有.htacess或 httpd.ini(需要选择所有文件类型) 文件的可以点击右侧“导入规则”,导入后会在web.config中自动添加规则。没有的可以直接“添加规则”
导入httpd.ini,会提示异常,需要去掉[N,I] 、[F,I,O] 等,只保留 RewriteRule 后面的规则,旧规则中的 “/”开头 ,需要改为“^”开头,否则会有404错误,如
RewriteRule /News/search\?k=([^\.]+) /news/search\.aspx?k=$1。注:?k=([^\.]+)这里在浏览器里访问会失效,先保留,后面会处理
其中 /News/search\?k=([^\.]+) 需要改为 ^News/search?k=([^\.]+)$
3、解决URL重写参数带“\?”的问题——双击带?号的规则,进入编辑窗口
—— 去掉“\?”及起后面的文字。如:/News/search-p([0-9]+)\?k=([^\.]+) ——^News/search-p([0-9]+)$
—— 下拉找到“条件”,“添加条件”:
条件输入:{QUERY_STRING}
检查输入字符串师傅:与模式匹配
模式:k=([^\.]+])
——下拉找到“操作”:
去掉:&k={R:2}
勾选:附加查询字符串
4、点击右侧“应用”,重启站点即可。
也可以直接修改web.config,注 $ 结尾,否则多个参数时,有可能无法获得参数
<?xml version=”1.0″ encoding=”utf-8″?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name=”11″>
<match url=”^News/search-p([0-9]+)$” ignoreCase=”true” />
<action type=”Rewrite” url=”/news/search.aspx?page={R:1}” appendQueryString=”true” />
<conditions>
<add input=”{QUERY_STRING}” pattern=”k=([^\.]+)$” />
</conditions>
</rule>
<rule name=”12″>
<match url=”^News/search$” ignoreCase=”true” />
<action type=”Rewrite” url=”/news/search.aspx” appendQueryString=”true” />
<conditions>
<add input=”{QUERY_STRING}” pattern=”k=([^\.]+)$” />
</conditions>
</rule>
<rule name=”13″>
<match url=”^News/list([0-9]+)-p([0-9]+)$” ignoreCase=”true” />
<action type=”Rewrite” url=”News/list.aspx?c={R:1}&page={R:2}” appendQueryString=”false” />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
———————
吉素材 » win2012 r2 + IIS8.5 +url重写模块2.0