我有动态网址放在我的网页上。目前我正在做的是在iis中使用url rewriter模块映射这些url。那应该是预配置的。我在web.config中看到了这些规则
无论如何,我无法获得有关我所获得的网址的预知。 举个例子:对于这个问题,网址将是
我想在我的网络应用程序中添加的是MyWeb / ans1,MyWeb / ans2,MyWeb / ans3,myWeb / ans4
因此我需要在我的重写器中有四条规则(在这种情况下)。
我想在动态(运行时)中实现url重写事物。我无法预定义这些规则。有没有做到这一点的工作?将这些规则放到数据库表中并获取它,调用action方法并进行重写部分。或者为什么我不能这样做。
谢谢
答案 0 :(得分:0)
您可以尝试ManagedFusion.net,一个开源的Url重写器项目,它比IIS重写模块提供更多的功能。请参阅http://managedfusion.com/products/url-rewriter/documentation.aspx。
您可以在其配置文件中预先配置规则,并且您可以实现自己的ApacheEngine来运行动态规则。
public class SpidermanApacheEngine : ApacheEngine
{
/// <summary>
/// Runs the rules.
/// </summary>
/// <param name="context">The context.</param>
/// <returns>the redirect Uri</returns>
public override Uri RunRules(HttpContextBase context)
{
// you can define any dynamic rule here.
}
}
并在web.config中替换默认的ManagedFusion引擎:
<managedFusion.rewriter xmlns="http://managedfusion.com/xsd/managedFusion/rewriter">
<rules engine="Other" engineType="Spiderman.ManagedFusionRewriter.SpidermanApacheEngine, Spiderman.ManagedFusionRewriter">
</rules>
<rewriter allowVanityHeader="false" />
</managedFusion.rewriter>