我的默认网站下有以下目录:
/myapp/
/myapp/v1/
/myapp/v2/
/myapp/v3/
/myapp/administration/
现在我想将所有在浏览器中输入/myapp
或/myapp/
或 的用户 http 重定向到。/myapp/index.html
/myapp/v3/index.html
请求到达
/myapp/favicon.ico
/myapp/typeyourfilenamehere.html
不应转发。但我发现的唯一选项是“仅将请求重定向到此目录中的内容”,但这不仅包括index.html
,还包括typeyourfilenamehere.html
。
如何在 IIS 中配置上述行为?
编辑:感谢@JamesRyan的快速回答,“IIS URL rewrite 2.0”刚刚将以下内容放入我的Web.config中:
<rewrite>
<rewriteMaps>
<rewriteMap name="/myapp">
<add key="/myapp" value="/myapp/v3/" />
<add key="/myapp/" value="/myapp/v3/" />
<add key="/myapp/index.html" value="/myapp/v3/" />
</rewriteMap>
</rewriteMaps>
<rules>
<rule name="Umschreibregel1 für /myapp" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{/myapp:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
乍一看,它像缩进一样工作,但也许有人可以向我解释每一行告诉重写引擎什么。
答案1
使用 URL 重写模块,然后您可以根据您喜欢的任何模式进行重定向,并附带您喜欢的任何例外。
答案2
http://www.iis.net/downloads/microsoft/url-rewrite
您可以安装此 IIS 扩展,它将允许您根据正则表达式重写请求字符串。
界面会根据您使用的 IIS 版本而有所不同。您使用的是哪个版本?