我试着写在我的Web应用程序都In-和出站使用IISS URLRewriter像这样的网址:IIS URL重写出境PostBackUrls
www.domain.net/SomeSite.aspx
到www.domain.net/SomeSite
使用这个正则表达式入站:
^([A-Za-z0-9]+)([\?A-Za-z0-9=&]+)?$
,多出乎我的意料,这实际工作,也为网址,如www.domain.net/SomeSite.aspx?abc=1
=>www.domain.net/SomeSite?abc=1
使用此重写操作:{R:1}.aspx?{R:2}
但如今,对出站,我想有同样的效果,因此用户实际看到www.domain.net/SomeSite
即使我的web应用程序可能在内部引用〜/ SomeSite.aspx。
我使用下列正则表达式:
^([A-Za-z0-9]+).aspx([\?A-Za-z0-9=&#]+)?$
和重写,像这样的网址:/{R:1}{R:2}
一般来说这个作品,唉,如果不是确实为例如Response.Redirect
在CodeBehind中执行,它也不适用于asp:Button
s的PostBackUrl
。
有没有人有任何想法如何重写这个出站规则,因此它实际上捕获每个链接,无论我如何引用它?
感谢,
丹尼斯
编辑:
一些例子,因为我想我是不是很清楚,因为我以为:
用户在浏览器www.domain.com/Login
,入站规则捕获并重定向到www.domain.com/Login.aspx
,但在地址栏中显示/Login
,这种行为很好。
但是,当我点击即一个asp:按钮与PostBackUrl Login.aspx
地址栏将显示Login.aspx
而不是所需的Login
,如何得到这种行为?
为什么不将PostBackUrl更改为/ Login而不是Login.aspx?我*认为*应该工作,至少这是我如何处理正常的锚点标记(保存出站不得不这样做,然后!) – ianbailey 2012-03-13 16:53:45
是的,这会工作,但它会是令人惊讶的不方便,因为我需要做我在IIS上调试,而不是在开发服务器上。 – 2012-03-13 22:25:56