web.config 中带有尾部斜杠的非 www 301 重定向(单一重定向)
non-www with trailing slash 301 redirect in web.config (Single Redirect)
我怎样才能 301 将我的 URL 重定向到最后的 non-www equivalent with trailing slash
而只有一个 单个 301 重定向 (避免重定向链)?我正在使用 ASP.net 4.5/C#/Web 项目,我的路由在 RouteConfig.cs
.
中注册
一个选项是检查每个页面的代码隐藏中的 URL 并重建 URL,但我更喜欢让 IIS 使用重写规则来处理它。
正如您从这张图片中看到的(通过 chrome,客户端),有两个 301 重定向,因为在我的 web.config 中我有两个规则,一个用于更改为小写 URL 第二个添加尾部斜杠。
也许 IIS 中有一个选项可以防止重定向,直到所有 URL 在内部重写 运行。我搜索了一下,还没找到解决方法。
在web.config中(您需要安装IIS URL重写模块)
<system.webServer>
<rewrite>
<rules>
<rule name="noslash" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".+[^\/]$" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="www.yourdomain.com" />
<add input="{HTTP_HOST}" pattern="yourdomain.com" />
</conditions>
<action type="Redirect" url="http://yourdomain.com/{R:0}/" />
</rule>
<rule name="www" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".+\/$" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="www.yourdomain.com" />
</conditions>
<action type="Redirect" url="http://yourdomain.com/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
EDIT2:如果 url 不存在
,则在末尾添加尾部斜线
我怎样才能 301 将我的 URL 重定向到最后的 non-www equivalent with trailing slash
而只有一个 单个 301 重定向 (避免重定向链)?我正在使用 ASP.net 4.5/C#/Web 项目,我的路由在 RouteConfig.cs
.
一个选项是检查每个页面的代码隐藏中的 URL 并重建 URL,但我更喜欢让 IIS 使用重写规则来处理它。
正如您从这张图片中看到的(通过 chrome,客户端),有两个 301 重定向,因为在我的 web.config 中我有两个规则,一个用于更改为小写 URL 第二个添加尾部斜杠。
也许 IIS 中有一个选项可以防止重定向,直到所有 URL 在内部重写 运行。我搜索了一下,还没找到解决方法。
在web.config中(您需要安装IIS URL重写模块)
<system.webServer>
<rewrite>
<rules>
<rule name="noslash" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".+[^\/]$" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="www.yourdomain.com" />
<add input="{HTTP_HOST}" pattern="yourdomain.com" />
</conditions>
<action type="Redirect" url="http://yourdomain.com/{R:0}/" />
</rule>
<rule name="www" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".+\/$" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="www.yourdomain.com" />
</conditions>
<action type="Redirect" url="http://yourdomain.com/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
EDIT2:如果 url 不存在
,则在末尾添加尾部斜线