我必须在我的 IIS 配置中遵循两条规则(根据 scottgu):
<rule name="RemoveTrailingSlashRule1" stopProcessing="true">
<match url="(.*)/$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Redirect" url="{R:1}" />
</rule>
<rule name="CanonicalHostNameRule1" enabled="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^dev\.testing\.ch$" negate="true" />
</conditions>
<action type="Redirect" url="http://dev.testing.ch/{R:1}" />
</rule>
CanonicalHostNameRule1 将所有http://testing.ch转发到http://www.testing.ch/
第二条规则删除了退格/
如果我可以将空的 testing.ch 请求转发到 www.testing.ch 会更好(没有退格)。但是,如果我像这样删除它显然是行不通的:
<action type="Redirect" url="http://dev.testing.ch{R:1}" />