C# IIS URL重写出站回发URL
我正在尝试使用IISs URLEwriter在我的Web应用程序中写入URL,包括入站和出站,如下所示: www.domain.net/SomeSite.aspx到www.domain.net/SomeSite使用此正则表达式进行入站: ^[A-Za-z0-9]+[\?A-Za-z0-9=&]+?$,令我惊讶的是,这实际上也适用于URL,例如www.domain.net/SomeSite.aspx?abc=1=>www.domain.net/SomeSite?abc=1,使用以下重写操作:{R:1}.aspx?{R:2} 但是现在,对于Outbound,我希望具有相同的效果,以便用户实际看到www.domain.net/SomeSite,即使我的Web应用程序可能在内部引用~/SomeSite.aspx 为此,我使用以下正则表达式: ^[A-Za-z0-9]+.aspx[\?A-Za-z0-9=&]+?$并重写URL,如下所示:/{R:1}{R:2} 总的来说,唉,这不适用于在CodeBehind中执行的Response.Redirect,也不适用于来自asp:Buttons的PostBackURL 有没有人知道如何重写这个出站规则,以便不管我如何引用它,它都能捕获每个链接 谢谢 丹尼斯 编辑: 一些例子,因为我想我没有我想的那么清楚: 用户在浏览器中输入www.domain.com/Login,入站规则捕获并重定向到www.domain.com/Login.aspx,但仍在地址栏中显示/Login,此行为正常C# IIS URL重写出站回发URL,c#,asp.net,iis,url-rewriting,urlrewriter.net,C#,Asp.net,Iis,Url Rewriting,Urlrewriter.net,我正在尝试使用IISs URLEwriter在我的Web应用程序中写入URL,包括入站和出站,如下所示: www.domain.net/SomeSite.aspx到www.domain.net/SomeSite使用此正则表达式进行入站: ^[A-Za-z0-9]+[\?A-Za-z0-9=&]+?$,令我惊讶的是,这实际上也适用于URL,例如www.domain.net/SomeSite.aspx?abc=1=>www.domain.net/SomeSite?abc=1,使用以下重写操作:{R:
然而,当我点击一个带有PostBackUrl Login.aspx的asp:按钮时,地址栏将显示Login.aspx而不是所需的登录名,如何准确地获得这种行为?事实证明,我唯一需要做的就是添加一个入站重定向规则,并将这两个规则的stopProcessing设置为true。结果如下:
<rules>
<rule name="Clean URL" stopProcessing="true">
<match url="^([A-Za-z0-9]+)([\?A-Za-z0-9#=&]+)?$" />
<action type="Rewrite" url="{R:1}.aspx{R:2}" />
</rule>
<rule name="CleanTest" stopProcessing="true">
<match url="^([a-z0-9/]+).aspx([a-zA-Z0-9\?#=&]+)?$" />
<action type="Redirect" url="{R:1}{R:2}" />
</rule>
</rules>
为什么不将PostBackUrl改为/Login而不是Login.aspx?我认为这应该行得通,至少我是这样处理正常的锚定标签的,这样就省去了出站的麻烦!是的,这是可行的,但这会非常不方便,因为我需要在IIS上而不是在开发服务器上进行调试。