IIS URL重写规则 - 子目录的默认文档

时间:2010-06-15 08:11:19

标签: asp.net iis-7 url-rewriting url-rewrite-module

我想创建一个URL重写规则,它将为我的虚拟文件夹设置默认文档。例如。像这样的人

www.domain.com/en/ -> www.domain.com/en/index.aspx
www.domain.com/hr/ -> www.domain.com/hr/index.aspx
www.domain.com/de/ -> www.domain.com/de/index.aspx

目录en,hr,de并不存在于Web服务器上它们只是本地使用的http模块所使用的站点中使用的languange的标记,它将使用查询参数重写路径。

快速解决方案是为每一个lang定义规则,如下所示:

<rewrite>
    <rewriteMaps>
        <rewriteMap name="Langs">
            <add key="/en" value="/en/index.aspx" />
            <add key="/hr" value="/hr/index.aspx" />
            <add key="/de" value="/de/index.aspx" />
        </rewriteMap>
    </rewriteMaps>
<rules>

但我真的很喜欢不需要在web.config中进行更改并为特定网站上使用的每个语言添加重写规则的解决方案。

谢谢!

1 个答案:

答案 0 :(得分:2)

<rule name="Lang-Redirect">
    <match url="^(\w{2})\/?$" />
    <action type="Rewrite" url="{R:1}/index.aspx" />
</rule>

这应该允许您从请求中捕获语言标记并将其重写为自定义http处理程序。