我有一个包含许多应用程序、虚拟目录和几个应用程序池的 asp.net 站点。对于 URL 重写,我使用 Helicon ISAPI 重写器,版本 3。我有一个页面(可以说是“page.aspx”),应该可以由不同的 URL 访问,不同的 URL 以不同的值重写单个查询字符串参数。所有 Helicon 规则都在我的本地环境中进行了测试,但在部署到服务器后我遇到了问题。
我有网址:
URL1: '/product-one/'
URL2: '/product-one-another-version/'
显示“productone”和“productoneversion”的两个页面上的内容完全相同,但第一个 URL 可访问,第二个显示 403.18 错误。正如我所发现的,此错误表明 URL 已从一个池重写到另一个池。但这毕竟是同一个页面,为什么一个 URL 有效而另一个无效!
这些 URL 成功(我在 helicon 和 IIS 日志中检查过)重写为以下原始 URL:
URL1:'/folder/page.aspx?product=productone'
URL2:'/folder/page.aspx?product=productoneversion'
我有 8 个不同的“产品”参数选项。如果参数等于“productone”或“productoneversion”,则页面上的内容相同,并且在其他版本的页面上不同。8 个 URL 中只有 2 个通过 Helicon 工作。其余页面抛出 403.18 错误。但是,如果我使用具有不同查询参数的原始 URL,所有页面版本都会按预期工作。
请帮助我找出我的设置有什么问题,我该如何解决?
我的机器:win 8 企业版,IIS 8
服务器:win server 2012,IIS 8