web.config中的ASP.NET重写规则

时间:2015-09-15 18:19:32

标签: c# asp.net web-config url-redirection

我试图重定向

/ KEY / TEXT 或

/KEY/WEB.ASPX

到redirector?key = KEY& url = TEXT或redirector?key = KEY& url = WEB.ASPX。

我设法获得了/ KEY的成功,我在web.config中编写了以下内容

<match url="^([a-zA-Z0-9_-]+)$" ignoreCase="false" />
<action type="Rewrite" url="/redirector.aspx?key={R:1}" appendQueryString="false" />

无论我尝试匹配/ TEXT或/WEB.ASPX的URL,我都无法得到。 我甚至尝试过

<match url="^([a-zA-Z0-9_-]+)(\\/)([a-zA-Z0-9_-]+)$" ignoreCase="false" />
<action type="Rewrite" url="/redirector.aspx?key={R:1}&url={R:2}" appendQueryString="false" />

任何人都可以突出显示以下请求中出现的问题?

谢谢!

1 个答案:

答案 0 :(得分:2)

<match url="^([a-zA-Z0-9_\-]+)/+([a-zA-Z0-9_\-\.]+)$" ignoreCase="false" />
<action type="Rewrite" url="/redirector.aspx?key={R:1}&amp;url={R:2}" />

查看差异

  • - 和。必须转义字符,因为它们是特殊字符
  • 你不必逃避以下角色/
  • 每次捕获都是必需的,因此您可以匹配/KEY/TEXT并忽略/KEY/
  • 等网址
  • 而不是&amp;,使用xml实体&amp;

这是一个重写规则,这意味着您仍然可以在浏览器导航栏中看到该网址。如果要重定向到redirector.aspx,则必须使用type="Redirect"