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

使用htaccess记录外部CDN缓存图片文件名时的异常问题求解

特定CDN请求图片文件名记录htaccess配置问题解决方案

问题根因

你当前的配置会触发内部重定向循环:

  • 首次匹配到Photon的UA时,会把example.jpg的请求重写到log.php?image=example.jpg
  • 内部重定向后Apache会重新执行.htaccess的 rewrite 规则,第二次匹配时请求路径已经变成log.php,且UA依然是Photon/1.0,就会再次重写为log.php?image=log.php,最终你拿到的参数就是log.php

修复方案

需要新增规则排除log.php自身的请求,避免循环重写:

RewriteCond %{REQUEST_URI} !/log\.php$
RewriteCond %{HTTP_USER_AGENT} Photon/1.0
RewriteRule ^(.*)$ log.php?image=$1 [L]

如果上述配置仍有问题,可以用END标记代替L标记,直接终止所有rewrite流程,彻底避免循环(仅支持Apache 2.4及以上版本):

RewriteCond %{REQUEST_URI} !/log\.php$
RewriteCond %{HTTP_USER_AGENT} Photon/1.0
RewriteRule ^(.*)$ log.php?image=$1 [END]

可选优化

如果只需要记录图片类请求,可以增加后缀匹配规则,减少不必要的规则触发:

RewriteCond %{REQUEST_URI} !/log\.php$
RewriteCond %{HTTP_USER_AGENT} Photon/1.0
RewriteRule ^(.*\.(jpg|jpeg|png|gif|webp))$ log.php?image=$1 [END]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:48:03