C# URL重写正则表达式问题

C# URL重写正则表达式问题,c#,asp.net,iis-7,url-rewriting,C#,Asp.net,Iis 7,Url Rewriting,晚上, 我的任务是将网站从subdomain.domain.com移动到domain.com/subdomain 我有以下问题: 原始子域和域名都有url重写规则(asp.net、url重写器) 因此,我已经将子域内容文件移动(或者更确切地说,复制)到主域下的新子文件夹中,事情似乎进展得非常顺利,但有一两个问题 我需要匹配以下内容: -> http://www.maindomain.com/viewproduct.aspx?catName=foo&productName=bar -> 我已经开始

晚上,

我的任务是将网站从subdomain.domain.com移动到domain.com/subdomain

我有以下问题:

原始子域和域名都有url重写规则(asp.net、url重写器)

因此,我已经将子域内容文件移动(或者更确切地说,复制)到主域下的新子文件夹中,事情似乎进展得非常顺利,但有一两个问题

我需要匹配以下内容:

-> http://www.maindomain.com/viewproduct.aspx?catName=foo&productName=bar ->

我已经开始工作了,但是由于配置文件继承,我必须在主应用程序(主域)web.config中指定重写规则,因此我还需要匹配这些规则:

-> http://www.maindomain.com/us/viewproduct.aspx?catName=foo&productName=bar ->

显然,重写引擎需要忽略css/图像和其他文件等,例如:

&

需要任何其他信息,只管问

我目前的规则是:

    <rewrite url="^(/.+(\.gif|\.png|\.jpg|\.ico|\.pdf|\.css|\.js)(\?.+)?)$" to="$1" processing="stop"/>
<rewrite url="^/us/.+(\.gif|\.png|\.jpg|\.ico|\.pdf|\.css|\.js)(\?.+)?$" to="$1" processing="stop"/>

<rewrite url="^/us/Error.aspx" to="$1" processing="stop"/>
<rewrite url="^/us/Error404.aspx" to="$1" processing="stop"/>

<rewrite url="Error.aspx" to="$1" processing="stop"/>
<rewrite url="Error404.aspx" to="$1" processing="stop"/>

    <rewrite url="^/us/$" to="$1" processing="stop"/>
<rewrite url="^/us/(.+)/(.+).aspx" to="/us/viewProduct.aspx?productName=$2&amp;catName=$1" processing="stop"/>
<rewrite url="^/us/(.+)/" to="/us/category.aspx?name=$1" processing="stop"/>

<rewrite url="^/(.+)/(.+).aspx" to="~/viewProduct.aspx?productName=$2&amp;catName=$1" processing="stop"/>
<rewrite url="^/(.+)/" to="~/category.aspx?name=$1" processing="stop"/>

使用,iis7.5,c#,asp.net v2 谢谢
Michael这里有几个问题。首先,以下重写规则无法工作:


您要求重写模块将url
/us/
替换为匹配组1,但捕获表达式中没有组。要解决此问题,并处理tha
/us/
文件夹中的.aspx文件,请使用以下两条规则替换它:



此外,不需要第二个重写规则(用于
/us/
文件夹中的静态内容),因为第一个重写规则不关心文件位于哪个文件夹中,它将匹配(并停止处理)URL,例如
/us/images/foo.jpg

我忘了添加,我使用的是Intelligencia Rewriter,而不是IIS UrlReWriter