30

我在 IIS7 中创建了一个重写规则,该规则使用条件元素中的 trackAllCaptures="false" 属性并使用 outboundRules。在我的测试系统上一切正常,但是当我将这些规则部署到 GoDaddy 时,我收到错误:

Unrecognized attribute 'trackAllCaptures' 

如果我包含 outboundRules 节点,我会从服务器收到 500 错误。我与他们的支持进行了交谈,他们坚持认为他们支持 URL 重写模块的 2.0 版本。我的问题是如何验证或与他们沟通如何检查此模块的版本?除了尝试安装它来检查版本之外,我找不到任何方法。

我正在尝试重写 ASP.Net 应用程序而不是 WordPress 的 URL,以便从 URL 中删除子文件夹,这在他们的多域托管中是一个非常普遍的问题。我使用的示例位于此处:http ://weblogs.asp.net/owscott/archive/2010/05/26/url-rewrite-multiple-domains-under-one-site-part-ii.aspx

4

2 回答 2

37

Url Rewrite 的二进制文件位于:

%SystemRoot%\system32\inetsrv\rewrite.dll

Url Rewrite 1.1 的文件版本为7.1.490.43.
Url Rewrite 2.0 的文件版本为7.1.761.0or 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,版本=1.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35

如果不是,那么您将抛出异常:

无法加载文件或程序集“Microsoft.Web.Iis.Rewrite,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。该系统找不到指定的文件。

您也可以将它们指向此文档页面:

跨条件跟踪捕获组

这一段很清楚这trackAllCaptures是一个 2.0 的特定设置,如果它不起作用,那么 2.0 肯定没有安装:

在 URL 重写模块 2.0 中,可以更改捕获组的索引方式。在集合上启用trackAllCaptures设置<conditions>使捕获组形成所有匹配的条件,以通过反向引用获得。

于 2012-08-05T02:04:17.253 回答
5

当然,@Kev Answer 帮助我识别了版本,但似乎还有其他选择。我只是检查控制面板>已安装的程序。在那里我找到了版本安装。如果已安装,则检查版本并与@Kev 答案进行比较以了解它是版本 1 还是版本 2

控制面板 URL 重写模块图像

于 2020-09-29T08:11:10.853 回答