无法从IIS7中删除URL重写

15

我花了几个小时来尝试解决这个问题,现在只好把它发到论坛求助。

我尝试删除一些URL重写规则,将一个网页从HTTP指向HTTPS。

但即使删除了重写规则,仍然会跳转到HTTPS。我已经尝试过以下方法:

  • 手动编辑web.config文件
  • 重启网站
  • 重启IIS服务器
  • 重启IIS管理服务
  • 重新启动服务器

但以上任何一种方法都不能停止重写规则的跳转。

我是否漏掉了什么东西?


什么浏览器?我发现FireFox有一个缓存URL重写的技巧...尝试按Ctrl+F5清除缓存刷新了吗?我也浪费了很多时间在这个问题上.... :) - ianbailey
不行 - 刚刚尝试了Chrome / Firefox / IE8 / IE9,所有结果都一样。 - moodah
我最终遇到了同样的问题,重定向URL中出现了错误。现在,即使我在applicationHost.config文件中更新了URL并看到了更改,服务器上仍然显示旧的URL。在失败的跟踪日志中,我看到使用了旧/损坏的URL并且失败了,即使清除了浏览器缓存并重新启动了IIS,目前仍未解决该问题。 - MichaelF
3个回答

21

我遇到了与IIS Express相同的问题 - 从web.config中删除重写部分并没有成功。解决方法是清除浏览器缓存。


2

你是否检查了服务器级别的规则?可以在IIS管理器中找到,点击服务器节点,然后选择Url Rewrite模块,或直接在位于以下位置的IIS配置文件中查找:

C:\Windows\System32\inetsrv\config\applicationHost.config

我猜你是指在“连接”树中的服务器。其中只有一个服务器,包含“站点”文件夹,其中包含所有网站的配置。我已经检查了服务器级别的URL重写,但没有发现任何内容。我的两个网站配置中也没有任何关于https的重写: ( - moodah
在我的情况下,这正是解决方案!不太确定为什么它被添加为全局规则而不是应用程序级别,但无论如何,谢谢。 - Pat Migliaccio

1
似乎存在一个输出缓存,它在重定向响应到达URL重写规则之前对其进行缓存。可以将其关闭:
<system.webServer>
    <caching enabled="false" enableKernelCache="false" />
</system.webServer>

请注意,这是整个应用程序的输出缓存,因此可能会影响其他内容。无论如何,它可以被利用,然后注释掉以清除URL重写规则的状态。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接