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

根目录.htaccess配置重定向至download.php,出现页面未正确重定向错误

解决.htaccess根目录重定向循环问题

看起来你这是踩了重定向循环的坑,主要是.htaccess规则里的两处细节错误导致的,咱们一步步来修复:

1. 修正静态资源后缀的正则匹配错误

你写的\.jpg\.png是用来匹配xxx.jpg.png这种带双重后缀的文件的,而不是单独的.jpg或.png文件!这就导致所有.png后缀的图片、图标都会被错误地重定向到download.php。当download.php页面本身引用这些.png资源时,浏览器就会陷入“请求图片→跳转到download.php→download.php又请求图片→再跳转”的无限循环,自然就弹出“页面未正确重定向”的错误了。

把正则里的后缀部分改成正确的写法,把.jpg和.png分开:

RewriteCond %{REQUEST_URI} !(\.php|\.html|\.css|\.jpeg|\.jpg|\.png|\.js)$

2. 额外排除download.php本身(可选但更稳妥)

虽然理论上.php后缀已经被排除,但为了避免服务器对.php文件的内部处理可能引发的冲突,咱们可以再加一条规则,明确不让download.php被重定向规则匹配:

RewriteCond %{REQUEST_URI} !^/download.php$

修正后的完整.htaccess代码

RewriteEngine On
RewriteBase /

# 确保download.php本身不被重定向
RewriteCond %{REQUEST_URI} !^/download.php$
# 排除指定后缀的静态资源
RewriteCond %{REQUEST_URI} !(\.php|\.html|\.css|\.jpeg|\.jpg|\.png|\.js)$
# 重定向到download.php并传递原始请求路径
RewriteRule ^(.*)$ /download.php?url=$1 [L,QSA]

为什么子目录时能正常工作?

大概率是子目录下的静态资源(比如图片、样式)刚好都是规则里正确排除的后缀(比如.jpg、.js),没有触发循环;或者子目录里的download.php页面没有引用那些未被排除的资源(比如.png),所以没引发循环问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:30:23