【发布时间】:2012-05-31 21:50:31
【问题描述】:
我想从 C# 代码修改重写规则。 Url Rewrite 规则位于 web.config 文件中。
<system.webServer>
<rewrite>
<rules>
<rule name="partners">
<match url="^partners$" />
<action type="Rewrite"
url="partners.aspx" />
</rule>
<rule name="news">
<match url="^news$" />
<action type="Rewrite"
url="news.aspx" />
</rule>
<rule name="projects">
<match url="^projects$" />
<action type="Rewrite"
url="projects.aspx" />
</rule>
</rules>
</rewrite>
</system.webServer>
我想换前任。 <rule name="partners"> <match url="^partners$" /> 到 <rule name="partners"> <match url="^friendship/partners$" />,
如何找到节点规则并将匹配 url 更新为“new one” where name = "partners";?
这是我对动态 url 重写的想法。感谢您提供任何其他方式。
【问题讨论】:
-
您想从同一个 Web 应用程序或其他应用程序中修改这些规则?您是否知道如果您修改 web.config 应用程序将被回收?
-
在同一个应用程序中……你说不可能?谢谢
-
我可以在任何 page_event 中配置 Web.Config 吗?前任。 Page_Init()?
-
是的,但这会杀死你的应用程序。
-
更好的解决方案是更改您的应用程序,以便它可以接受可变 URL,例如使用ASP.NET URL routing 将所有参数传递给您的应用程序。修改 web.config 有很多缺点,如果您进行多次重写,最终可能会遇到扩展问题。
标签: c# asp.net iis url-rewriting web-config