8

我在 Windows Server 2008 R2 上使用 IIS7 运行 ASP.NET 4.0 网站。

该站点在主域(~/site1、~/site2、~/site3 等)下有许多 Web 应用程序。每个 Web 应用程序都是同一网站源文件夹 (D:\Websites\MySite) 的一个实例,因此您可以通过以下任一 URL 访问同一网站:

www.mydomain.com

www.mydomain.com/site1

www.mydomain.com/site2

www.mydomain.com/site3

每次都返回相同的网站,但内容略有不同,具体取决于调用的特定 URL。

几个月来一切都运行良好,直到我被要求使用 URL Rewrite 添加一些 SEO 优化。我添加的每个 URL 重写规则都会产生以下错误:

HTTP 错误 500.52 - URL 重写模块错误。由于发生内部服务器错误,无法显示该页面。

配置错误:无法添加类型为“规则”且唯一键属性“名称”设置为“AddTrailingSlashRule1”的重复集合条目

我已经阅读了 web.config 文件中围绕 <system.webServer> configSection 的其他地方:

<location path="." inheritInChildApplications="false">

将解决这个问题。

但是,虽然它阻止了错误消息的出现,但它也阻止了 URL 重写规则在任何 Web 应用程序(~/site1、~/site2、~/site3)中的工作。

如何让 URL 重写模块与 Web 应用程序一起使用?

谢谢你尽你所能的帮助。

4

1 回答 1

26

添加清除以防止子站点上的重复错误。

 <rules>
    <clear />
    <rule name="Redirect rule for /maps">
      ....
    </rule>
 </rules>
于 2013-03-11T20:14:51.817 回答