Magento 1.9迁移后API/REST接口出现404错误求助
解决Magento 1.9迁移后REST API 404错误的排查方案
我来帮你排查下这个迁移后遇到的REST API 404问题,结合你给出的信息,给你几个针对性的排查和解决方向:
确认Apache mod_rewrite模块是否启用
本地环境正常但生产服务器出问题,大概率是生产服务器没开启Rewrite模块。你可以通过以下步骤验证和开启:- 执行命令
sudo a2enmod rewrite启用模块 - 重启Apache服务:
sudo systemctl restart apache2(基于systemd的系统)或者sudo service apache2 restart - 也可以通过
phpinfo()页面查看mod_rewrite是否在已加载模块列表中
- 执行命令
检查虚拟主机配置的有效性
你添加的Directory配置需要确保是在对应站点的<VirtualHost>块内部,而不是全局Apache配置里。很多时候全局规则会被虚拟主机的配置覆盖,导致AllowOverride All不生效。修改完配置后一定要重启Apache,让新配置生效。验证.htaccess文件的权限与位置
- 确认
.htaccess文件确实在Magento根目录/var/www/html/magento/下 - 检查文件权限:Apache需要能读取这个文件,建议设置为
644,目录权限设置为755。执行命令:chmod 644 /var/www/html/magento/.htaccess chmod 755 /var/www/html/magento/
- 确认
检查Magento后台的API相关配置
- 登录Magento后台,进入
System > Configuration > Web > Search Engines Optimization,确认Use Web Server Rewrites选项设置为Yes - 进入
System > Web Services > REST Roles和REST Attributes,验证对应API角色的权限是否完整——迁移过程中可能会出现权限配置丢失的情况
- 登录Magento后台,进入
测试Rewrite规则是否正常工作
可以在.htaccess文件顶部添加一条简单的测试规则:RewriteRule ^test-api$ test.html [L]然后在Magento根目录创建
test.html文件,访问你的域名/test-api,如果无法打开test.html,说明Rewrite规则根本没生效,还是Apache配置的问题。确认PHP扩展完整性
Magento 1.9的REST API依赖多个PHP扩展,即使PHP版本是7.0,也要确保mcrypt、curl、json这些扩展已安装。执行php -m查看已加载扩展,缺失的话用对应包管理工具安装,比如Debian/Ubuntu系统:sudo apt-get install php7.0-mcrypt php7.0-curl php7.0-json安装后记得重启Apache。
内容的提问来源于stack exchange,提问作者sacarr
相关产品推荐
相关产品推荐

