我从未做过URL重写(重定向)。我有一个网站http://sub.sub.domain.ext/app/。 “app”表示“应用程序”,而不是虚拟目录。 当用户导航到http://sub.sub.domain.ext/app(没有斜线)时,我需要IIS 7将其重定向到带有斜杠的URL。
问题在于,当用户导航到应用程序时,我希望仅将应用于 。我不希望将尾部斜杠附加到每个文件名。
我尝试在IIS7管理器中修改预定义规则,但没有成功。我已经尝试完全匹配整个URL,约束条件,或者只是使用原始的预定义规则。但即使使用原始规则,它也会重写所有后续请求文件/目录/网址,但不会将用户从http://sub.sub.domain.ext/app重定向到http://sub.sub.domain.ext/app/。
答案 0 :(得分:3)
您正在寻找的规则可能很简单:
<rule name="Add trailing slash" stopProcessing="true">
<match url="^app$" negate="false" />
<action type="Redirect" url="{R:0}/" />
</rule>
url="^app$"
模式只匹配网址http://www.yourwebsite.com/app
而没有其他内容
如果您需要将此行为限制为主机sub.sub.domain.ext
,则可以添加条件:
<rule name="test" stopProcessing="true">
<match url="^app$" negate="false" />
<action type="Redirect" url="{R:0}/" />
<conditions>
<add input="{HTTP_HOST}" pattern="^sub.sub.domain.ext$" />
</conditions>
</rule>