我最近为Prestashop网站开发了一个模块,其中有一个自定义PHP文件(不是控制器或其他任何文件,只是纯PHP文件),用于简单的GET请求(生成PDF)。
文件的路径是:
website root dir -> modules -> module_name -> script.php
因此,对于这些请求,我在本地开发环境(localhost)上使用localhost/modules/module_name/script.php
。
但是,将模块部署到生产网站时(显然用域名替换localhost
时,该网站返回404错误。尽管我确定文件存在,但是在此确切位置。
在我的本地环境和生产环境之间尝试比较.htaccess
文件(网站的根目录下的文件和modules
文件夹内的文件),它们完全相同(域名除外)。
尽管我可以在网站的根目录中运行其他PHP文件(例如,可以很好地访问example.com/script.php
)。另外,模块的其余部分(控制器,后台页面,挂钩等)也可以正常工作,只有此文件不能正常工作。
请注意,在两种环境下,Prestashop后台都打开了“友好URL”。可能是什么问题?同样,我100%确定URL和脚本的路径正确。 Prestashop是阻止请求还是其他?
编辑:将脚本移动到站点的根目录,并使用URL example.com/script.php
可以正常工作。但我想了解为什么它在模块目录中不起作用。
如果需要更多信息,请告诉我。
您的开发环境和产品环境的Web服务器是否相同并且配置相同?在您的生产Web服务器上可能有一些特定的配置阻止您访问该文件:进行某种强化的配置很有意义。