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

通过htaccess访问已存在图片时打开指定PHP文件的规则怎么写?

问题原因

你原有规则不生效的核心原因有两个:

  1. 服务器默认开启的MultiViews内容协商功能优先级高于mod_rewrite,会直接返回匹配到的已存在实体文件,跳过重写逻辑
  2. 若你的.htaccess中存在全局通用的重写规则(例如CMS默认配置),通常会自带RewriteCond %{REQUEST_FILENAME} !-f(跳过已存在文件)的判断条件,导致存在的jpg文件不触发后续重写。

正确配置

将jpg专属重写规则放在所有其他重写规则的最前面,完整配置如下:

# 关闭内容协商避免自动匹配实体文件
Options -MultiViews
RewriteEngine On

# 所有.jpg后缀请求全部重写至根目录image.php,无视文件是否存在
RewriteRule \.jpg$ /image.php [L,QSA]

可选优化配置

如果你只需要对/uploads/目录下的jpg生效,避免影响其他目录的正常图片访问,可以修改规则为:

RewriteRule ^uploads/.*\.jpg$ /image.php [L,QSA]

你可以在image.php中通过$_SERVER['REQUEST_URI']获取用户原始请求的图片路径,做后续业务逻辑处理。

内容的提问来源于stack exchange,提问作者João Pereira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:36:07