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

如何修改.htaccess规则排除指定文件不被重写?

如何在.htaccess中排除特定文件不被重写规则拦截

你当前的.htaccess规则是通过将wp-content/uploads/下的所有文件重写到dl-file.php来限制媒体文件访问,但需要跳过指定的几个文件。之前在规则后添加原文件重写规则无效的原因是原规则使用了[L]标记,会终止后续规则的处理,正确的做法是在原规则前添加否定匹配条件,让符合排除条件的请求不触发重写。

修改后的完整规则

RewriteEngine On

# 排除指定的第一个文件
RewriteCond %{REQUEST_URI} !^/wp-content/uploads/2022/12/image-26\.png$
# 排除指定的第二个文件
RewriteCond %{REQUEST_URI} !^/wp-content/uploads/2022/11/horse47\.jpg$
# 检查请求的文件存在且非空(保留你原有的条件)
RewriteCond %{REQUEST_FILENAME} -s
# 执行重写规则
RewriteRule ^wp-content/uploads/(.*)$ dl-file.php?file=$1 [QSA,L]

关键说明

  • 每个RewriteCond前的!表示否定匹配,即当请求的URI不匹配后面的正则时,才会继续执行后续条件和规则。
  • 正则中的.需要用\转义,避免被当作任意字符匹配。
  • 如果需要排除更多文件,只需继续添加新的RewriteCond行即可,格式和上面一致。
  • 若要批量排除某类文件(比如所有.png),可以用正则简化:RewriteCond %{REQUEST_URI} !\.png$

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:30:49