URL路径中包含特殊字符%的处理

 
  

URL路径中,文件名含“%、&”等特殊字符,怎么才能正常访问这个图片

首先:我考虑的是转义字符,把特殊字符转义一下。换成非特殊字符。后查证不行。 百度的官方解释如下 https://support.microsoft.com/zh-cn/kb/942076 若要解决此问题,请执行以下步骤:

注意:完成以上步骤后,可能会降低运行 IIS 的服务器的安全级别。因此,将allowDoubleEscaping属性设置为True之前,应考虑所涉及的风险。
  1. 单击开始,在开始搜索框中,键入记事本,在程序列表中,右键单击记事本,然后单击以管理员身份运行如果提示您输入管理员密码或进行确认,请键入您的密码,或单击继续
  2. 文件菜单上,单击打开,在文件名框中,键入%windir%\System32\inetsrv\config\applicationHost.config ,然后单击打开
  3. 在 ApplicationHost.config 文件中,找到requestFiltering XML 元素。
  4. 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.config 文件中的根文件夹中的"默认 Web 站点"配置该设置只为"默认网站"。
    • appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True /commit:appHost
      注意:这将通过使用位置标记,在 applicationHost.config 文件中配置该设置只为"默认网站"。
网友的翻译版本:
1、在地址栏输入: %windir%\ system32\inetsrv\config\applicationhost.config然后单击 打开。2、在 ApplicationHost.config 文件, 定位到文件中的 configuration/system.webServer/security/requestFiltering/下 节点。将 改为 即可。3、或在网站的web.config里修改或添加该节点,也是可以的。例如代码示例:如此,iis7配置伪静态时,url中特殊符号包含空格无法访问的问题就解决了。

你可能感兴趣的:(c#,asp.net,知识地图项目)