2017-06-13 133 views
0

我们的网站使用“子文件夹”用于指定的语言(例如www.domain.com/nl或www.domain.com/en)。默认语言是Dutch(nl)。目前访问者都能够通过指定的语言(例如www.domain.com/nl)或根域(例如www.domain.com)访问网页。重定向(web.config中)规则强制子目录

因为我们想重定向(强制)SEO目的的所有用户访问的根中的指定语言(NL)(例如www.domain.com/page/1到www.domain.com/nl/page/1) 。

先前的方法(使用web.config重写规则)导致(无限)循环(例如www.domain.com/nl/nl/nl/nl/nl/nl/nl/etc。)。

我知道这个话题Rewrite Rule to enforce default lang code in URL介绍如何在.htaccess中做到这一点,但我没有线索如何将其转换为web.config。

在此先感谢:-)

+0

所以你希望所有谁进入www.dowmain.com/page/1将被重定向用户到www.domain.com/nl/page/1? – ISHIDA

+0

@ISHIDA正确。和www.domain.com/sub/sub/sub到www.domain.com/nl/sub/sub/sub。所以总是强制执行语言。 – Lycaon

回答

1

试试这个

<configuration> 
      <system.webServer> 
      <rewrite> 
<conditions> 
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> <add input="{REQUEST_URI}" pattern="^/umbraco/" negate="true" /> <add input="{REQUEST_URI}" pattern="^/install/" negate="true" /> <add input="{REQUEST_URI}" pattern="^/nl/" negate="true" /> 
</conditions> 
      <rules> 
      <rule name="Language" stopProcessing="true"> 
      <match url="^/nl" negate="true" /> 
      <action type="Redirect" url="/nl/{R:0}" redirectType="Permanent" /> 
      </rule> 
      </rules> 
      </rewrite> 
      </system.webServer> 
     </configuration> 

以上规则将重定向所有www.domain.com/sub/sub到www.domain.com/nl/sub/sub

+0

谢谢。不幸的是,这是行不通的。之前尝试过。 当来访例如domain.com/page,它不重定向到domain.com/nl/page,而是要domain.com/nl。 – Lycaon

+0

我已经更新了我的正则表达式,可以请你现在尝试在inifinite循环 – ISHIDA

+0

结果(例如/ NL/NL/NL/NL/NL) – Lycaon