我有一个.NET webforms应用程序,其中一个实例通常部署在IIS 7中,主机名如下:“[appname] .dinamiks.com”。我现在需要像这样部署它们:“trial.dinamiks.com/ [appname] /”。
当我这样做时,问题是对应用程序中的根目录有许多url引用,例如< img href =“/ images / logo.png”/>这当然指向“trial.dinamiks.com/images/logo.png”,而不是我需要指出的地方:“trial.dinamiks.com/ [appname] /images/logo.png”。
是否有任何可能的解决方案可以解决此问题而无需将所有网址更改为相对路径,或者这是唯一的方法吗?
由于
更新
我的坏榜样。我希望不必像在那里那样更改应用程序中的URL,并且完全改变它们将是一项艰巨的任务。有可能通过URL重写来实现此目的吗?
答案 0 :(得分:0)
我设法通过在IIS 7中创建出站URL重写规则来找到解决方案。 我勾选了“匹配内容:”的所有选项,除了“使用自定义标签”
要匹配的正则表达式为:(?!^\/appname)(^\/.*)
这匹配以/开头但不以/ appname
开头的任何路径重写值为:/appname{R:0}
这会在原始值之前添加/ appname。
重写规则出现在Web.config中,如下所示:
<outboundRules>
<rule name="add app root">
<match filterByTags="A, Area, Base, Form, Head, Img, Input, Link, Script" pattern="(?!^\/testapp)(^\/.*)" negate="false" />
<action type="Rewrite" value="/testapp{R:0}" />
</rule>
</outboundRules>
答案 1 :(得分:-1)
而不是
<img href="/images/logo.png"/>
使用
<img src="~/images/logo.png" />