我正在 Windows Server 2008 R2 上使用 IIS7 运行 ASP.NET 4.0 网站。
该网站在主域下有多个 Web 应用程序(~/site1、~/site2、~/site3 等)。每个 Web 应用程序都是同一网站源文件夹(D:\Websites\MySite)的一个实例,因此您可以通过以下任何 URL 访问同一个网站:
www.mydomain.com
www.mydomain.com/site1
www.mydomain.com/site2
www.mydomain.com/site3
每次都会返回同一个网站,但根据调用的具体 URL,内容会略有不同。
几个月来一切都运行良好,直到有人要求我使用 URL 重写添加一些 SEO 优化。我添加的每个 URL 重写规则都会产生以下错误:
HTTP 错误 500.52-URL 重写模块错误。 由于发生内部服务器错误,无法显示该页面。
配置错误:无法添加类型为“rule”且唯一键属性“name”设置为“AddTrailingSlashRule1”的重复集合条目
我在其他地方读到过,围绕 web.config 文件中的 <system.webServer> configSection 的内容如下:
<location path="." inheritInChildApplications="false">
将修复此问题。
然而,虽然它阻止了错误消息的出现,但它也阻止了 URL 重写规则在任何 Web 应用程序 (~/site1、~/site2、~/site3) 中发挥作用。
如何使 URL Rewrite 模块与 Web 应用程序协同工作?
谢谢你尽你所能的帮助。