我在这个网站的帮助下构建了一个重写规则。但我仍然有一个小问题。
我的目标是从 URL 中删除某个目录。
例如:
www.mywebsite.com/uk/editions/
应该重写为
www.mywebsite.com/editions/
(删除目录英国)
上述方案现在适用于所有 URL,除了一个。
英国主页实际上位于此处。( index.html
)
www.mywebsite.com/uk/
正确的重写规则应将 URL 显示为
www.mywebsite.com
相反,它显示的是 www 根目录index.html
而不是uk/index.html
页面。
但是如果我像这样在 URL 中指定索引页面
www.mywebsite.com/uk/index.html
它正确地将 URL 重写为
www.mywebsite.com
并显示英国索引页面而不是 www 根索引页面。
我使用的规则如下:
<rule name="Hide UK Directory in URL" enabled="true" stopProcessing="true">
<match url="^uk$|^uk/(.*)$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^www\.mywebsite\.com$" />
</conditions>
<action type="Redirect" url="{R:1}" logRewrittenUrl="true" />
</rule>
<rule name="Rewrite the URL after UK is hidden" enabled="true" stopProcessing="true">
<match url="^(?!uk)(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^www\.mywebsite\.com$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="uk/{R:1}" logRewrittenUrl="true" />
</rule>