Asp.net IIS URL重写规则-子目录的默认文档
我想创建URL重写规则,该规则将为我的虚拟文件夹设置默认文档。像这样的事Asp.net IIS URL重写规则-子目录的默认文档,asp.net,iis-7,url-rewriting,url-rewrite-module,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模块使用的站点中使用的语言的标记,
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模块使用的站点中使用的语言的标记,该模块将使用查询参数重写路径
快速解决方案是为每个语言定义规则,如下所示:
<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并为特定站点上使用的每种语言添加重写规则
谢谢
<rule name="Lang-Redirect">
<match url="^(\w{2})\/?$" />
<action type="Rewrite" url="{R:1}/index.aspx" />
</rule>
这应该允许您从请求中捕获语言标记并将其重写到自定义http处理程序中