Sitecore - 类似 URL 的 301 重定向

Sitecore - 301 redirection for similar URLs

根据 SEO 的建议,我正在尝试将类似的 URL 重定向到一个 URL。 例如,

1) http://www.example.com/en/contact-us

2) http://www.example.com/en/contact%20us

3) http://www.example.com/en/contact-us/

以上三个 URL 将我们带到 Sitecore 中的同一项目。所以我想将粗体的 URL 设为主 URL,其他两个 URL 应该有一个 301 重定向到它。

我尝试在 IIS 中添加重写规则,并且可以获得第一个 URL 重定向。但是,第二个 URL 没有重定向到第三个 URL。见下面的配置。

Web.config

<rewrite>    
    <rules>
        <rule name="Redirect rule">
            <match url=".*" />
            <conditions>
              <add input="{HTTP_HOST}" pattern=".*example\.com.*" />
              <add input="{ExamplePermanent:{REQUEST_URI}}" pattern="(.+)" />
              </conditions>
              <action type="Redirect" url="{C:1}" appendQueryString="false" 
                     redirectType="Permanent" />
            </rule>
    </rules>
    <rewriteMaps configSource="rewritemaps.config" />
</rewrite>

rewritemaps.config

<rewriteMaps>
  <rewriteMap name="ExamplePermanent">
      <add key="/en/contact-us" value="/en/contact-us/" />
      <add key="/en/contact%20us" value="/en/contact-us/" />
  </rewriteMap>
<rewriteMaps>

是否需要进行任何配置才能使用 301 进行第二次 URL 重定向?

IIS 会将 %20 解码为 space,因此只需在 rewritemaps 中将其替换为 space:

 <add key="/en/contact us" value="/en/contact-us/" />