1

我创建了一个 PHP 脚本并使用 vertrigo 在 localhost 上对其进行了测试。它工作正常。我把它上传到我的网络托管服务器上,它在那里不工作。它有一个使用 PHP 处理的 HTML 表单。当我提交表单时,浏览器显示以下错误消息:

禁止的

您无权访问此服务器上的 /jobs2/abc.php。

此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。

这是 HTML 表单代码,它不起作用:

<form name="jobslist" method="POST" action="abc.php">
   <input type="text" name="job[0]" value="http://example.com/1.html" />
   <input type="text" name="job[1]" value="http://example.com/2.html" />
   <input type="submit" value="Submit"  />
</form>

我已经通过在表单元素的值之前删除http://来纠正它,它工作正常。

<form name="jobslist" method="POST" action="abc.php">
   <input type="text" name="job[0]" value="example.com/1.html" />
   <input type="text" name="job[1]" value="example.com/2.html" />
   <input type="submit" value="Submit"  />
</form>
  • 我想知道,如何在不删除表单元素值中的http://的情况下使第一个代码运行良好?
  • 其次,我也想知道,为什么服务器不接受以http://开头的值?
4

1 回答 1

0

此类错误可能是由服务器端模块(如mod_securitymod_rpaf或任何其他 WAF(Web 应用程序防火墙,例如在反向代理中)引起的。您可以使用 列出启用的模块apache2ctl -M

如果您没有看到任何可疑模块,您也可以尝试php -m在那里检查...

如果 mod_security 有罪,您应该在文件中看到信息/var/log/apache2/modsec_audit.log

于 2013-09-08T19:54:03.420 回答