拦截url重写模块,防止重写

时间:2011-09-21 17:49:33

标签: url-rewriting rewrite iis-7.5

是否有任何会导致IIS中的url重写模块无法启动的内容?也许是处于集成模式或http处理程序的网站?

我尝试了一些不同的东西来让重写规则起作用,但没有。我最新的就是这样

<rewrite>
      <rewriteMaps>

      </rewriteMaps>
      <rules>
        <rule name="rewriterule" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
          <match url="*" />

          <action type="Redirect" url="http://www.google.com" />
        </rule>
      </rules>
    </rewrite>

它根本不起作用。我尝试了各种正则表达式等等。它就像它没有被使用。

2 个答案:

答案 0 :(得分:1)

好像你有答案,但这里有一些其他可能导致重写模块无法工作的事情:

  • 部署网站并看到此功能无法使用时 你的服务器,很可能你错误​​配置了什么 在你的服务器上。你可能做的一个错误配置可能 将 overrideModeDefault 属性设置为拒绝以获取规则 在您的applicationHost.config中<sectionGroup name="rewrite"> 文件

  • 如果您使用的是共享托管环境,则会看到此功能 不工作,然后问你的提供者他们是否给你了 允许配置此部分。

  • 在您的开发环境中,如果您运行的是您的网站 Visual Studio开发服务器,您将无法看到此内容 功能工作。您需要将应用程序配置为在其下运行 至少 IIS Express 以查看此功能是否有效。

答案 1 :(得分:1)

我的答案是,您必须在与url重写模块相同的目标平台上运行该站点。例如,我安装了x64版本的url重写模块,但该网站在32位下运行。一旦我将网站设置为在64位下运行,重写就开始工作了。