Magento 1.9.3.1仅首页报Too many redirects及Moved Permanently错误求助
Magento 1.9.3.1 首页Too many redirects(双斜杠)问题排查方案
我之前处理过好几起Magento 1.9.x版本的类似重定向问题,结合你描述的症状——仅首页/index.php出现Too many redirects错误、地址栏站点名称末尾出现双斜杠、控制台所有GET请求路径显示为//,可以从以下几个方向逐步排查修复:
1. 检查.htaccess文件的重写规则
Magento的.htaccess是重定向问题的高发区,重点关注这两部分:
- 末尾斜杠处理规则:检查是否存在冲突的规则,比如同时有强制添加斜杠和移除斜杠的规则,这会直接导致循环重定向。例如,下面是正确的移除多余末尾斜杠的规则(如果你的站点不需要强制末尾带斜杠):
RewriteCond %{REQUEST_URI} !^/index.php RewriteCond %{REQUEST_URI} /$ RewriteRule ^(.*)/$ $1 [L,R=301] - RewriteBase设置:确认
RewriteBase的值是否正确,根目录站点应设置为RewriteBase /,子目录站点要对应调整为RewriteBase /your-subdir/,错误的RewriteBase会导致路径解析异常,出现双斜杠。
2. 修正后台URL配置
如果还能登录Magento后台,优先通过后台修改;无法登录的话直接修改数据库:
- 后台操作:进入
系统 > 配置 > Web > 安全,检查基础URL和安全基础URL的格式,确保末尾没有双斜杠,比如正确格式是http://your-domain.com/(单个斜杠或不带斜杠都可,不要双斜杠)。 - 数据库修改:直接操作
core_config_data表,查找web/unsecure/base_url和web/secure/base_url两条记录,修正值的格式,移除多余的斜杠。
3. 检查index.php文件的路径处理
如果曾自定义修改过index.php,可能存在路径拼接错误:
- 打开根目录的
index.php,检查是否有手动拼接URL的代码,比如在定义MAGENTO_ROOT或处理请求路径时,是否多添加了斜杠。例如,确保define('MAGENTO_ROOT', getcwd());的路径正确,没有多余斜杠。 - 排查是否有第三方插件或自定义代码修改了首页的URL生成逻辑,导致双斜杠出现。
4. 清除缓存与浏览器Cookie
缓存残留很可能导致修复后问题依然存在:
- 清空Magento的缓存目录:直接删除
var/cache和var/session下的所有文件(注意备份重要缓存,如果有的话)。 - 清除浏览器的Cookie和缓存:浏览器会缓存旧的重定向规则,即使服务器端修复,依然会触发循环重定向。
5. 检查服务器配置
根据你使用的服务器(Apache/Nginx)做对应检查:
- Apache虚拟主机:确认
DocumentRoot的设置末尾没有斜杠,比如正确格式是DocumentRoot /var/www/html/magento,而非/var/www/html/magento/,否则会导致URL解析时出现双斜杠。 - Nginx配置:检查
root指令和重写规则,比如默认的try_files $uri $uri/ /index.php?$args;如果和Magento的URL规则冲突,可调整为:
避免location / { try_files $uri /index.php?$args; }$uri/触发多余的斜杠添加。
内容的提问来源于stack exchange,提问作者Pawan
相关产品推荐
相关产品推荐

