You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

PrestaShop 1.7.X模块文件存在却报404错误求助

排查PrestaShop 1.7.X中Econt模块ajax.php 404错误的思路

嘿,遇到这种文件明明存在却返回404的情况确实挺闹心的,我来帮你梳理几个常见的排查方向:

首先明确你的问题:你在PrestaShop 1.7.X店铺里安装了对应版本的Econt模块,文件已经在modules/econt/文件夹中,但无论是前端触发的请求:

http://motokayak.eu/modules/econt/ajax.php?ajax_function=get_cities_by_name&q=dsad&limit=10&timestamp=1526125310888

还是直接访问http://motokayak.eu/modules/econt/ajax.php,都返回404未找到。

下面是几个可能的原因和解决办法:

  • 模块文件权限不正确:Web服务器需要有读取ajax.php文件的权限才能正常访问。你可以通过FTP工具或者服务器控制面板,检查modules/econt/文件夹的权限是否为755,ajax.php文件的权限是否为644。如果权限过低,服务器会拒绝访问,从而返回404。
  • URL重写规则拦截了请求:PrestaShop默认启用了伪静态(URL重写),如果根目录的.htaccess文件(Nginx则是站点配置文件)里的规则有误,或者没有将模块目录下的PHP文件排除在重写之外,就会导致请求被错误处理。你可以尝试临时禁用URL重写(在后台“首选项>SEO&URLs”里关闭),再测试能不能访问ajax.php;或者检查.htaccess文件,确保没有针对modules/目录的限制规则。
  • 模块安装不完整或文件损坏:有时候虽然你看到ajax.php存在,但可能模块安装时部分依赖文件缺失,或者这个PHP文件本身内容损坏。建议你重新下载对应PrestaShop版本的Econt模块,覆盖现有文件,然后在后台先卸载模块再重新安装一次,确保所有文件都正确部署。
  • 服务器安全规则限制:有些主机服务商的服务器会通过ModSecurity或者虚拟主机配置,禁止直接访问模块目录下的PHP文件,以此提升安全性。你可以查看服务器的错误日志(比如Apache的error.log、Nginx的error.log),看看有没有相关的访问拒绝记录;或者直接联系主机客服确认是否有这类限制。

相关截图:

  • 截图1:模块文件存在证明
  • 截图2:开发者控制台404错误
  • 截图3:模块目录结构
  • 截图4:后台模块状态
  • 截图5:URL访问测试结果
  • 截图6:模块文件详情

内容的提问来源于stack exchange,提问作者Тони Николов

火山引擎 最新活动