【问题标题】:regex redirect "/service" IIS 7正则表达式重定向“/服务” IIS 7
【发布时间】:2014-10-13 23:17:55
【问题描述】:

我是 .NET 和 IIS 的新手,我正在尝试使用这种模式 \/([^\/]+)(?=\/[^\/]+\/?$) 进行正则表达式重定向,所以我的网址将从 mysite.com/en/solutions/exemple 转到 mysite.com/en/exemple 但在重定向 IIS 中将 /Service 放在我的网址中有人想知道如何解决这个问题?

这是 IIS 7 在我的web.config 中生成的规则

 <rewrite>
            <rules>
                <rule name="redirect salesforce" stopProcessing="true">
                    <match url="\/([^\/]+)(?=\/[^\/]+\/?$)" />
                    <action type="Redirect" url="/en/{R:0}/coveo-for-salesforce" appendQueryString="false" />
                </rule>
            </rules>
        </rewrite>

Thanks

更新:我试过了

 <rewrite>
      <rules>
      <rule name="remove solutions from url" stopProcessing="true">
      <match url="^([^/]+)(/[^/]+)(/.*)" />
      <action type="Redirect" url="/{R:0}{R:1}" appendQueryString="false" />
    </rule>
  </rules>
   </rewrite>

我得到一个未找到

请注意,我正在使用 2 种语言 en 和 fr 开发 Sitecore 解决方案

【问题讨论】:

  • 那么,您想删除网址中的/solutions/ 部分吗?
  • 完全一样,但同时作为 301 重定向
  • 您是否使用 IIS Rewrite 模块测试器或在浏览器中输入网址测试了以下解决方案?

标签: regex redirect iis-7 sitecore web-config


【解决方案1】:

如果要从url中删除第一级文件夹,例如:

/en/solutions/example-page -> /en/example-page

/en/other-folder/another-page -> /en/another-page

/fr/one-more-folder/blah-page -> /fr/blah-page

对于 301 重定向代码,使用以下规则:

<rewrite>
  <rules>
    <rule name="remove solutions from url" stopProcessing="true">
      <match url="^([^/]+)(/[^/]+)(/.*)" />
      <action type="Redirect" url="/{R:1}{R:3}" appendQueryString="false" />
    </rule>
  </rules>
</rewrite>

如果您想使用301 代码从mysite.com/en/solutions/exemple 重定向到mysite.com/en/exemple(所以实际上从所有网址中删除solutions(但前提是它们直接位于语言之后),您可以使用:

<rewrite>
  <rules>
    <rule name="remove solutions from url" stopProcessing="true">
      <match url="^([^/]+)/solutions(/.*)" />
      <action type="Redirect" url="/{R:1}{R:2}" appendQueryString="false" />
    </rule>
  </rules>
</rewrite>

我已经在 Sitecore 应用程序上测试了该解决方案,它确实有效。

【讨论】:

  • 是的,但问题是它可能是平台而不是解决方案我有其他路径,但我总是希望结果是 mysite.com/en/exemplepage
  • 我的输入与 IIS 的模式不匹配
  • 答案已更新。看看有没有帮助。如果没有,请编辑您的问题并提供一些示例。
  • 我对 /en/solutions/exemple 有一个错误
  • 您是否只复制了匹配 "^([^/]+)(/[^/]+)(/.*)" 的第二条规则?完整的网址是什么?你到底想达到什么目标?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-14
  • 1970-01-01
  • 2023-03-15
  • 2013-07-25
  • 2018-04-19
相关资源
最近更新 更多