【发布时间】:2015-09-14 16:43:15
【问题描述】:
我现在每种语言都有这个,但是你可以看到它们都重写到同一个页面:
<rule name="help en">
<match url="^help?/?$"/>
<action type="Rewrite" url="help.aspx"/>
</rule>
<rule name="help sp">
<match url="^ayuda?/?$"/>
<action type="Rewrite" url="help.aspx"/>
</rule>
或者更复杂的参数化重写,例如:
<rule name="news category overview_de">
<match url="^artikelen/([a-zA-Z0-9-+']+)?/?$" />
<action type="Rewrite" url="newsoverview.aspx?category={R:1}" />
</rule>
<rule name="news category overview_en">
<match url="^articles/([a-zA-Z0-9-+']+)?/?$" />
<action type="Rewrite" url="newsoverview.aspx?category={R:1}" />
</rule>
这占用了很多空间,那么有没有办法写得更短?
我查看了这篇文章:How to add multiple URL rewrite rules in a web.config,但这并没有让它变得更短。
有没有办法可以重复match url 条件或添加多个网址?
更新 1
我试过了:
<rule name="news overview">
<match url="^(artikelen|articles)?/?$" />
<action type="Rewrite" url="newsoverview.aspx" />
</rule>
<rule name="news category overview">
<match url="^(artikelen|articles)/([a-zA-Z0-9-+']+)?/?$" />
<action type="Rewrite" url="newsoverview.aspx?category={R:1}" />
</rule>
但这现在甚至会将对我主页的请求重定向到 newsoverview.aspx 页面。
【问题讨论】:
标签: asp.net url-rewriting web-config