【发布时间】:2018-02-03 05:39:18
【问题描述】:
我正在处理的站点(IIS8 上的 .Net 4.0 和 VS2010)使用单个规则将 所有 传入 URL 重写为存在于单个“/pages/”文件夹中的 .aspx 页面。例如,“www.site.com/hello”被重写为“/pages/hello.aspx”。
目前的重写规则是这样的:
<rule name="pages" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^([a-z0-9_-]+(?:/[a-z0-9_-]+)*)/?$"/>
<action type="Rewrite" url="/pages/{R:1}.aspx" appendQueryString="true" />
</rule>
这工作正常,但是当以下任一情况为真时,我正在努力实现自定义 404 重定向:
a) 正则表达式中定义的 url 格式不匹配(即未遵守严格的 url 格式),或
b) url 正则表达式匹配,但不存在对url="/pages/{R:1}.aspx" 的重写(例如,url 为“/pages”但物理文件“/pages/hello.aspx”不存在)。
这可以通过重写规则来实现吗?
【问题讨论】:
标签: asp.net url-rewriting custom-error-pages