URL路径中,文件名含“%、&”等特殊字符,怎么才能正常访问这个图片
首先:我考虑的是转义字符,把特殊字符转义一下。换成非特殊字符。后查证不行。 百度的官方解释如下 https://support.microsoft.com/zh-cn/kb/942076 若要解决此问题,请执行以下步骤:
注意:完成以上步骤后,可能会降低运行 IIS 的服务器的安全级别。因此,将allowDoubleEscaping属性设置为True之前,应考虑所涉及的风险。重要:当您启用双引号转义的序列时,则可能会降低运行 IIS 的服务器的安全级别。
- 单击开始,在开始搜索框中,键入记事本,在程序列表中,右键单击记事本,然后单击以管理员身份运行。如果提示您输入管理员密码或进行确认,请键入您的密码,或单击继续
- 在文件菜单上,单击打开,在文件名框中,键入%windir%\System32\inetsrv\config\applicationHost.config ,然后单击打开。
- 在 ApplicationHost.config 文件中,找到requestFiltering XML 元素。
- 将allowDoubleEscaping属性的值更改为True。若要执行此操作,请使用类似于下面的代码示例的代码。
<requestFiltering allowDoubleEscaping="true">
- 在文件菜单上,单击保存。
- 退出记事本。
前面的步骤将直接编辑 applicationHost.config 文件,并在服务器级别上配置此设置。您可以使用Appcmd命令来配置该设置。若要执行此操作,请按照下列步骤操作:网友的翻译版本:
- 单击开始,单击运行,然后在打开框中键入cmd 。
- 键入以下命令,并按 enter 键:
C: CD %windir%\system32\inetsrv- 运行下列命令之一:
注意:这将通过创建或编辑 Web.config 文件中的根文件夹中的"默认 Web 站点"配置该设置只为"默认网站"。Appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True
注意:这将通过使用位置标记,在 applicationHost.config 文件中配置该设置只为"默认网站"。appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True /commit:appHost
1、在地址栏输入: %windir%\system32\inetsrv\config\applicationhost.config然后单击 打开。2、在 ApplicationHost.config 文件, 定位到文件中的 configuration/system.webServer/security/requestFiltering/下 <requestFiltering> 节点。将<requestFiltering> 改为 <requestFiltering allowDoubleEscaping="true"> 即可。3、或在网站的web.config里修改或添加该节点,也是可以的。例如代码示例:<configuration><system.webServer><security><requestFiltering allowDoubleEscaping="true"></requestFiltering></security></system.webServer></configuration>如此,iis7配置伪静态时,url中特殊符号包含空格无法访问的问题就解决了。
URL路径中包含特殊字符%的处理
最新推荐文章于 2023-12-29 14:58:20 发布