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

.htaccess规则对PDF文件重定向失效的问题排查求助

问题分析

你的规则逻辑存在匹配优先级问题,同时WordPress默认规则会干扰不存在的PDF请求处理:

  • 原规则的OR条件虽逻辑上应匹配/wp下的PDF,但实际因Apache规则执行顺序或缓存问题未生效;
  • 对于不存在的PDF请求,WordPress规则会优先将其转发到index.php返回404,重定向规则未提前拦截。
解决方案

修改.htaccess规则,调整逻辑顺序,确保重定向规则优先于WordPress规则执行:

  1. 替换原重定向规则,先排除不需要重定向的请求(/wp开头且非PDF),再统一重定向其他请求;
  2. 临时用302重定向测试,避免浏览器301缓存干扰,确认生效后再改回301。

修改后的完整.htaccess如下:

<IfModule mod_rewrite.c>
RewriteEngine on

# 排除/wp开头且非PDF的请求,不执行重定向
RewriteCond %{REQUEST_URI} ^/wp.*$
RewriteCond %{REQUEST_URI} !\.pdf$ [NC]
RewriteRule ^ - [L]

# 重定向所有其他请求到新站点
RewriteRule ^(.*)$ https://www.example.com/products?utm_medium=$1 [L,R=302]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

# 保留原特定页面重定向(建议后续改用mod_rewrite规则避免冲突)
Redirect 301 /wp/example-product-1/ https://www.example.com/products/example-product-1/
Redirect 301 /wp/example-product-2/ https://www.example.com/products/example-product-2/
Redirect 301 /wp/example-product-3/ https://www.example.com/products/example-product-3/

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php70” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php70 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit
额外注意事项
  • 清除浏览器缓存:因之前使用301永久重定向,浏览器可能缓存旧响应,建议用无痕模式测试新规则;
  • 统一规则类型:后续建议将所有重定向规则改用mod_rewrite实现,避免mod_alias的Redirect与mod_rewrite规则冲突;
  • 测试不存在的PDF:修改规则后,访问不存在的/wp下PDF路径,应直接重定向到新站点,而非旧站404页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 20:22:12