IIS UrlRewrite不适用于IIS 8

alp*_*per 24 web-config url-rewriting iis-8

我刚刚将我的网站移动到使用IIS 8的新计算机.除URL重写之外的所有内容都运行良好.没有错误信息比"HTTP Error 404.0 - Not Found"我得到的.我只认识到,有一个像RewriteModule (%SystemRoot%\system32\inetsrv\rewrite.dll)网站>模块设置页面的条目但是,IIS 8没有相同的模块.即使我将相同的模块添加到IIS 8,它也无法正常工作.如果我能就如何解决问题提出一些建议,我会很高兴的.可根据要求提供更多信息..

希望我能表达我的意思.!

提前致谢,

阿尔珀

ps:网址规则运作良好..

小智 8

首先,你必须检查重写url是否运行良好,请遵循以下示例教程:

http://www.iis.net/learn/extensions/url-rewrite-module/using-failed-request-tracing-to-trace-rewrite-rules

如果没有,请打开IIS8并检查是否显示URL重写图标.如果没有从这里下载msi:

http://www.iis.net/downloads/microsoft/url-rewrite

并重新安装该模块.现在,您可以在根节点(服务器节点)以及网站和Web应用程序节点上看到IIS管理器中的URL重写模块.

希望能帮助到你!


Rid*_*dik 7

我花了几个小时解决这个问题。我经历了一些步骤并使重写模块正常工作。

  1. 重新安装重写模块。如果您在 IIS 和已安装的应用程序列表中没有看到此模块,但重写安装程序表示该模块已安装,请转至注册表 ( HKLM/SOFTWARE/MICROSOFT/WINDOWS/CURRENTVERSION/Uninstall) 并搜索“重写”。找到卸载字符串并运行它。它将删除重写模块,您可以从头开始安装。
  2. 安装 IIS 的应用程序请求路由模块。
  3. 重要的!如果您已有包含规则的 web.config,请将其删除。通过 IIS 菜单创建/添加规则。这样IIS就会激活重要的ARP模块。

  • 什么是ARP模块?您是指[应用程序请求路由模块](https://learn.microsoft.com/en-us/iis/extensions/planning-for-arr/using-the-application-request-routing-module)? (2认同)

And*_*i R 5

我忘了为要重定向的域添加绑定。例如重定向到https://www.example.com通常需要以下绑定:

这些重定向规则(来自 SO)然后对我有用:

<rule name="Redirect from non www" stopProcessing="true">
    <match url=".*" />
    <conditions>
      <add input="{HTTP_HOST}" pattern="^example.com$" />
    </conditions>
    <action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent" />
  </rule>
  <rule name="Redirect from non https" stopProcessing="true">
    <match url=".*" />
    <conditions>
      <add input="{HTTPS}" pattern="^OFF$" />
      <add input="{HTTP_HOST}" pattern="^www.example.com$" />
    </conditions>
    <action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent" />
  </rule>
Run Code Online (Sandbox Code Playgroud)


vah*_*imi 5

转到IIS管理器->服务器节点->应用程序请求路由缓存->服务器代理设置->选中启用代理复选框。


Jea*_*lin 0

你可以试试这个方法。经过一番谷歌搜索后,您并不是唯一遇到此问题的人 --> http://forums.iis.net/t/1173537.aspx/1