【问题标题】:Can Intelligencia.UrlRewriter be made to work in IIS7?Intelligencia.UrlRewriter 可以在 IIS7 中工作吗?
【发布时间】:2010-10-11 13:15:02
【问题描述】:

我们继承了一个使用 Intelligencia.UrlRewriter 模块的应用程序。我们的环境虽然是 IIS7。我们已经将我们的站点设置为在经典的 asp.net 应用程序池中运行(这显然适用于很多此类问题)。但是,我们仍然没有看到我们应用中的 URL 被重写。

有人遇到过这种情况吗?

【问题讨论】:

    标签: iis iis-7 url-rewriting


    【解决方案1】:

    是的,我在 Intelligencia.UrlRewriter 模块上遇到了完全相同的问题,在 Win Vista 和 IIS7 下运行,但是切换到经典的 asp.net 应用程序池确实解决了这个问题。您是否在新的虚拟目录中运行该应用程序?这有时会混淆应用程序的根路径,这可能会对 web.config 中的规则产生影响

    【讨论】:

      【解决方案2】:

      您需要在 system.webServer 元素上定义配置,例如:

          <system.webServer>
               <validation validateIntegratedModeConfiguration="false" />
              <modules runAllManagedModulesForAllRequests="true">
        <add name="UrlRewriter" 
         type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" />
              </modules>
          </system.webServer>
      

      您可以保留这两个配置。你现在可能拥有的是:

      <httpModules>
            <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" />
              </httpModules>
      

      查看http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis7/上的“将 ASP.NET 应用程序迁移到 IIS 7.0 集成模块”部分

      ps。只要有那个配置,我就一直在使用它,没有任何问题。

      更新 1: 还要检查 http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx,特别是“方法 3:使用 HttpModule 使用 IIS7 执行无扩展 URL 重写”,因为我添加的配置具有无扩展配置。

      【讨论】:

      • 弗雷迪,我试了一下,但没有成功。我认为 IIS7 不喜欢无扩展名的 url(例如:gallery/view/1)。正则表达式可以解决这个问题吗?这是当前的:
      • hmm,我没有用过那种风格的配置,我的看起来是这样的:
      • 我没有额外的查询参数和其他东西。无论如何,我会先尝试一个简单的版本,以排除该配置的任何内容。
      • 有没有办法让它与“经典”管道一起工作?
      • 上述 system.webServer 和 httpModules 下的条目适用于集成模式 (IIS7.5)
      【解决方案3】:

      我发现了同样的问题,经过几次尝试后,我发现将 asp 模式更改为集成管道会有所帮助。

      【讨论】:

      • 我也有在集成模式下工作但在经典模式下不工作的情况。
      【解决方案4】:

      如果您使用的是 IIS7,请不要忘记在 web.config 文件的 system.webServer 部分添加以下行

      <system.webServer>
      <modules runAllManagedModulesForAllRequests=”true”>
      <add name=”UrlRewriter” type=”Intelligencia.UrlRewriter.RewriterHttpModule” />
      </modules>
      <validation validateIntegratedModeConfiguration=”false” />
      </system.webServer>
      

      http://frozengraphics.wordpress.com/2009/12/06/intelligencia-urlrewriter-and-iis7/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-30
        • 2010-10-24
        • 2018-04-04
        • 2017-12-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多