You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IIS环境下加固uploads文件夹后图片加载异常的解决咨询

解决IIS环境下WordPress Uploads文件夹禁用PHP且不影响静态文件加载的问题

嘿,我明白你的困扰了——之前直接移除PHP处理器的操作导致整个文件夹的请求都找不到合适的处理程序,连静态图片也遭殃出现500错误,这太闹心了。下面给你两个靠谱的解决方案,都能实现禁止PHP执行+正常加载静态文件的需求:

方案一:用IIS请求过滤(推荐,简洁安全)

这个方法直接通过IIS的请求过滤模块,拒绝所有PHP相关扩展名的文件访问,静态文件完全不受影响。把以下内容替换你当前的web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <fileExtensions>
          <!-- 禁止所有PHP类扩展名的文件 -->
          <add fileExtension=".php" allowed="false" />
          <add fileExtension=".php3" allowed="false" />
          <add fileExtension=".php4" allowed="false" />
          <add fileExtension=".php5" allowed="false" />
          <add fileExtension=".phtml" allowed="false" />
          <add fileExtension=".phar" allowed="false" />
        </fileExtensions>
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

为什么这个管用?

它直接告诉IIS:任何带有这些PHP扩展名的请求都不允许访问,会返回403或404(取决于你的IIS全局配置),但图片、CSS、JS这些静态文件的扩展名默认是允许的,所以能正常加载,完美避开之前的500错误。

方案二:通过Handlers精准禁止PHP执行

如果你更倾向于用处理器配置的方式,可以用下面的代码,确保静态文件的处理程序被保留:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <!-- 把所有PHP相关请求导向404处理器,禁止执行 -->
      <add name="Block-PHP" path="*.php*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\System32\inetsrv\404.dll" resourceType="Either" requireAccess="None" />
      <!-- 明确添加静态文件处理程序,确保图片等能正常加载 -->
      <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
    </handlers>
  </system.webServer>
</configuration>

注意事项

  • 方案一的请求过滤是IIS的核心安全功能,配置更简单,也更不容易出错,优先推荐。
  • 配置完成后,记得测试一下:直接访问uploads里的PHP文件应该被拒绝,而图片URL能正常加载。

内容的提问来源于stack exchange,提问作者Ryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:52:44