我在IIS7中创建了一个重写规则,它使用conditions元素中的trackAllCaptures =“false”属性并使用outboundRules。一切都在我的测试系统上运行正常但是当我将这些规则部署到GoDaddy时,我得到错误:
Unrecognized attribute 'trackAllCaptures'
如果我包含outboundRules节点,我会从服务器收到500错误。我与他们的支持进行了交谈,他们坚持认为他们支持2.0版本的URL Rewrite模块。我的问题是如何验证或与他们沟通如何检查该模块的版本?我无法在如何检查版本的情况下尝试安装它。
我正在尝试重写ASP.Net应用程序的URL而不是WordPress,以便从URL中删除子文件夹,这在他们的多域托管中是一个非常普遍的问题。我使用的示例位于:http://weblogs.asp.net/owscott/archive/2010/05/26/url-rewrite-multiple-domains-under-one-site-part-ii.aspx
答案 0 :(得分:32)
Url Rewrite的二进制文件位于:
%SystemRoot%\system32\inetsrv\rewrite.dll
Url Rewrite 1.1的文件版本为7.1.490.43
Url Rewrite 2.0的文件版本为7.1.761.0
或7.1.871.0
(可能还有其他版本,但这些是我所知道的两个版本)。
如果您没有控制台访问权限来验证版本号,请尝试在简单的网页中运行以下代码:
Assembly a = Assembly.Load("Microsoft.Web.Iis.Rewrite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
Response.Write(a.FullName);
如果安装了UrlRewrite 2.0,那么您将看到如下内容:
Microsoft.Web.Iis.Rewrite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
如果不是,那么你会得到一个例外:
无法加载文件或程序集“Microsoft.Web.Iis.Rewrite,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”或其中一个依赖项。系统找不到指定的文件。
您也可以在此文档页面中指出它们:
这一段很清楚trackAllCaptures
是一个特定于2.0的设置,如果它不起作用,那么肯定没有安装2.0:
在URL Rewrite Module 2.0中,可以更改捕获组的索引方式。在
trackAllCaptures
集合上启用<conditions>
设置会使捕获组形成通过反向引用可用的所有匹配条件。
答案 1 :(得分:1)