Regex 帮助从ISAPI_重写迁移到IIS7 URL重写
我有一个ISAPI_重写规则:Regex 帮助从ISAPI_重写迁移到IIS7 URL重写,regex,iis-7,asp-classic,url-rewriting,Regex,Iis 7,Asp Classic,Url Rewriting,我有一个ISAPI_重写规则: RewriteRule /([^/.?]+) /sc.asp?p=$1 [I,L] 此规则应重写URL,如下所示: /一些文章 /第二条 而且不应该像这样重写URL: /home.asp /admin(因为有一个名为admin的目录) /管理员/ /场地/古特曼 它在ISAPI_重写中非常有效 昨天我买了一台Windows2008R2虚拟专用系统,我开始将我的ASP经典web应用程序转移到新服务器上。现在,除了URL重写,一切都很好。我在谷歌上搜索了一下,发现I
RewriteRule /([^/.?]+) /sc.asp?p=$1 [I,L]
此规则应重写URL,如下所示:
/一些文章
/第二条
而且不应该像这样重写URL:
/home.asp
/admin(因为有一个名为admin的目录)
/管理员/
/场地/古特曼
它在ISAPI_重写中非常有效
昨天我买了一台Windows2008R2虚拟专用系统,我开始将我的ASP经典web应用程序转移到新服务器上。现在,除了URL重写,一切都很好。我在谷歌上搜索了一下,发现IIS7 URL重写模块与ISAPI_重写模块完全不同
我创建了一个空白规则。在模式中我设置了/([^/?]+)
,在动作中->动作类型我设置了重写
,在动作中->动作属性->重写Url我设置了sc.asp?p={R:0}
。它不起作用
在谷歌搜索之后,我发现我必须在我的模式开始时远程调用/
字符(因此我的模式现在是([^/?]+)
)。所以我做了,现在,它只是重写任何url,它应该只重写不是目录或文件的url
有什么想法吗
谢谢。避免重写实际指向现有文件的URL的最简单方法是添加以下条件:
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
此外,您的匹配模式显示了一个常见的误解。查询字符串没有传递到匹配URL模式,因此您不需要查找?