重定向(web.config)规则以强制执行子目录

时间:2017-06-13 13:41:07

标签: .net web-config

我们的网站使用"子文件夹"用于指定语言(例如www.domain.com/nl或www.domain.com/en)。默认语言为Dutch(nl)。目前,访问者都可以通过指定的语言(例如www.domain.com/nl)或根域(例如www.domain.com)访问网页。

出于搜索引擎优化的目的,我们希望将访问根目录的所有用户重定向(强制执行)为特定语言(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。

提前致谢: - )

1 个答案:

答案 0 :(得分: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