【问题标题】:Sitecore - 301 redirection for similar URLsSitecore - 类似 URL 的 301 重定向
【发布时间】:2018-12-23 06:04:43
【问题描述】:

根据 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>

为了使第二个 URL 重定向为 301,是否需要进行任何配置?

【问题讨论】:

  • 你的重定向规则是什么?粘贴你的配置
  • 我已经更新了配置

标签: redirect iis sitecore url-redirection


【解决方案1】:

IIS 会将 %20 解码为空格,因此只需将其替换为 rewritemaps 中的空格即可:

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

【讨论】:

  • 我已经添加了一个空格,但它不起作用。需要应用程序池回收以使其在本地工作。并在 Azure 中重新启动应用服务。
猜你喜欢
  • 2013-05-17
  • 2017-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-01
  • 2016-05-11
  • 2013-12-21
  • 2015-03-04
相关资源
最近更新 更多