【发布时间】:2014-12-11 08:48:52
【问题描述】:
我需要将我网站上的某个页面从基于扩展的页面 (.asp) 重写为基于非扩展的页面。但是,当我这样做时,规则也会影响所有子文件夹。页面如下:
www.mysite.com/my-page
需要重新写入:
www.mysite.com/my-page.asp
但是我需要从重写中否定以下内容:
www.mysite.com/my-page/sub-folder-1
www.mysite.com/my-page/sub-folder-1/sub-folder-2
等等
我目前的代码如下:
<rule name="re-write-rule-test" stopProcessing="true">
<match url="^my-page" />
<action type="Rewrite" url="/my-page.asp" />
<conditions>
<add input="{REQUEST_URI}" pattern="^/([^/]+)?$" negate="true" />
</conditions>
</rule>
但它不起作用。实际页面上的重写工作正常,但否定失败并且所有子文件夹页面也正在重写。
你能帮忙吗?
谢谢,
杰森
【问题讨论】:
-
我认为将
<match url="^my-page" />更改为<match url="^my-page$" />就足够了(在匹配中添加终止符以避免匹配以“我的页面”开头的所有内容。 -
你的否定似乎只适用于以
/开头并且直到最后没有其他/的东西..;我不明白你在那里尝试了什么。您可以使用regex101.com 对正则表达式匹配进行试验 -
感谢天思白。您的第一条评论就是答案。
标签: regex iis web-config