我编写了一个非常简单的 Magento 模块,它可以发送电子邮件,但不使用 Magento 的核心电子邮件系统。我正在使用 ajax 发布到 email.php
我已经在三个不同的环境中测试了这一点:本地、开发和登台。它在所有三个上都完美无缺。
现在,当我在第四台服务器上进行这些更改时,所有发布请求都返回以下内容:
POST http://mydomain.com/dir/path/email.php 403 (Forbidden)
并且所有发布请求都将以下内容记录到我的错误日志中:
client denied by server configuration: /var/www/vhosts/mydomain.com/httpdocs/dir/path/email.php, referer: http://mydomain.com/myCategory/myProduct
四台服务器之间的一切似乎都完全相同。我检查了权限和 httpd.config 以及 .htaccess 文件。
我可以将以下内容添加到 /apps/.htaccess 以使所有内容都可以实时运行,但是由于显而易见的原因,我不能保持这种方式。
<Limit POST>
order deny,allow
deny from all
allow from all
</Limit>
我认为磁根 .htaccess 文件有可能是罪魁祸首,但登台和开发服务器是实时站点的克隆。
基本上,我已经检查了我在服务器端能想到的一切。我完全困惑为什么我的模块可以在三个独立的服务器上运行,但不能在实时站点上运行。是否有任何相关文件可能导致此问题?也许防火墙规则?我的日志文件中的一般错误使这难以解决。