我需要在 IIS 7.5 中为 Web 应用程序创建别名。
例如,假设我有一个名为“MyHappyApp”的应用程序位于http://server.com/MyHappyApp
我想创建一些重定向到该应用程序的别名,例如:
在 IIS 7.5 中完成此行为的最佳做法是什么?请说明可以在 IIS 管理器中配置的位置以及web.config
可能的情况。
我需要在 IIS 7.5 中为 Web 应用程序创建别名。
例如,假设我有一个名为“MyHappyApp”的应用程序位于http://server.com/MyHappyApp
我想创建一些重定向到该应用程序的别名,例如:
在 IIS 7.5 中完成此行为的最佳做法是什么?请说明可以在 IIS 管理器中配置的位置以及web.config
可能的情况。
您需要使用重写模块,
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="MyHappyApp2_To_HappyAppPart3" stopProcessing="true">
<match url="MyHappyApp2" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{URL}" pattern="^/$" ignoreCase="true" />
</conditions>
<action type="Rewrite" url="/HappyAppPart3" />
</rule>
</rules>
</rewrite>
<security>
<requestFiltering allowDoubleEscaping="true" />
</security>
</system.webServer>
</configuration>
您需要安装 URL 重写模块。您可以通过 IIS 管理器配置规则或手动添加到 web.config。
虽然可以在一个规则中完成所有操作,但创建两个单独的规则可能更容易,一个用于您要重定向的每个别名。
这应该有效:
<rewrite>
<rules>
<clear />
<rule name="Redirect MyHappyApp2 to MyHappyApp" stopProcessing="true">
<match url="^MyHappyApp2(/.*)?$" />
<action type="Redirect" url="http://server.com/MyHappyApp{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
<rule name="Redirect HappyAppPart3 to MyHappyApp" stopProcessing="true">
<match url="^HappyAppPart3(/.*)?$" />
<action type="Redirect" url="http://server.com/MyHappyApp{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
上述规则也支持人们去http://server.com/HappyAppPart3/somepage?id=1
(只是一个例子)。他们将被重定向到http://server.com/MyHappyApp/somepage?id=1
.