正则表达式重定向 "/service" IIS 7



我是。net和IIS的新手,我正在尝试用这种模式/([^/]+)(?=/[^/]+/?$)进行正则表达式重定向,因此我的url将从mysite.com/en/solutions/exemplemysite.com/en/exemple,但在重定向IIS中将/服务放在我的url中,有人认为如何解决这个问题?

下面是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

更新:I tried

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

我得到一个not not found

请注意,我正在研究一个Sitecore解决方案与2种语言en和for

如果你想从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(所以实际上从所有url中删除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应用程序上测试了这个解决方案,它绝对有效。

最新更新