动态URL重写c#
我有动态网址放在我的网页。目前我正在做的是使用iis中的url重写器模块映射这些url。这应该是预先配置的。我在web.config中看到了这些规则 无论如何,我不能预先了解我得到的URL。 例如:对于这个问题,URL将是动态URL重写c#,c#,url-rewriting,C#,Url Rewriting,我有动态网址放在我的网页。目前我正在做的是使用iis中的url重写器模块映射这些url。这应该是预先配置的。我在web.config中看到了这些规则 无论如何,我不能预先了解我得到的URL。 例如:对于这个问题,URL将是 我想在我的web应用程序中放的是MyWeb/ans1、MyWeb/ans2、MyWeb/ans3、MyWeb/ans4 因此,我需要在我的重写器中有四条规则(在本例中) 我想在动态(运行时)中实现url重写。我不能预先确定那些规则。为实现这一目标,有没有工作要做?
谢谢您可以尝试ManagedFusion.net,这是一个开源Url重写器项目,它比IIS重写模块提供了更多的功能。看 您可以在其配置文件中预先配置规则,并且可以实现自己的ApachEngine来运行动态规则
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.
}
}
公共类蜘蛛侠引擎:ApacheEngine
{
///
///遵守规则。
///
///上下文。
///重定向Uri
公共重写Uri运行规则(HttpContextBase上下文)
{
//您可以在这里定义任何动态规则。
}
}
并在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>
您使用的是哪种web技术?ASP.NETMVC?这就像url重写插件一样工作,我没有得到apache引擎的东西。这是如何访问我的动态规则的?它是HttpModule。这里有更多的细节。和。实现引擎并在“public override Uri RunRules(HttpContextBase context)”方法中定义动态规则。上下文包含当前目标url(),您可以返回所需的任何其他URI(),然后请求将转发到新的URI