分类
Web编程

windows2008下iis7伪静态url中有加号或空格不能解析解决办法

错误提示:iis7.0请求筛选模块被配置为拒绝包含双重转义序列的请求

要解决此问题,请请按照下列步骤操作。

请注意 按照这些步骤后,在运行 IIS 的服务器的安全级别可能会降低。 因此,将 allowDoubleEscaping 属性设置为 True 之前,请考虑所涉及的风险。

  1. 单击 开始 ,在 开始搜索 框中键入 记事本 右键单击 程序 列表中的 记事本 ,然后单击 以管理员身份运行 。 如果将提示您输入管理员密码或进行确认,键入您的密码,或单击 继续 
  2. 在 文件 菜单上单击 打开 ,在 文件名 框中键入 %windir%\System32\inetsrv\config\applicationHost.config 然后再单击 打开 
  3. 在该 ApplicationHost.config 文件找到 requestFiltering XML 元素。
  4. 为 True ,请更改该 allowDoubleEscaping 属性的值。 为此,请使用类似下面的示例代码的代码
    <requestFiltering allowDoubleEscaping="true">
  5. 在 文件 菜单中上, 单击 保存 
  6. 退出记事本。

重要 当启用双转义的序列时,在运行 IIS 的服务器的安全级别可能会降低。

在前面的步骤将直接编辑 applicationHost.config 文件的并在服务器级别配置此设置中。 若要配置此设置,也可以使用 appcmd 命令。 要这样做,请按下列步骤操作:

  1. 单击 开始 ,单击 运行 ,然后键入在 打开 框中的 cmd 。
  2. 键入下面的命令,然后按 Enter 键:
    C: CD %windir%\system32\inetsrv
  3. 运行下列命令之一:
    • Appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True

      请注意 这将配置设置” Web 站点”的根文件夹中 Web.config 文件。

    • appcmd set config "站点名称" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True /commit:appHost

      请注意 这将为配置此设置仅”默认 Web 站点”applicationHost.config 文件中使用位置标记

  4. <system.webServer>
        <security>
          <requestFiltering allowDoubleEscaping="true"></requestFiltering>      
        </security>
    </system.webServer>

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注