我创建了一个PHP脚本,并使用vertrigo在localhost上进行了测试。它工作正常。我把它上传到我的网络托管服务器上,它不在那里工作。它有一个使用PHP处理的HTML表单。当我提交表单时,浏览器会显示以下错误消息:
禁止
您无权访问此服务器上的/jobs2/abc.php。
此外,尝试时遇到404 Not Found错误 使用ErrorDocument来处理请求。
这是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>
答案 0 :(得分:0)
此类错误可能是由服务器端模块引起的,如mod_security
,mod_rpaf
或任何其他WAF(Web应用程序防火墙,例如在反向代理中)。
您可以使用apache2ctl -M
列出已启用的模块。
如果您没有看到任何可疑模块,可以尝试php -m
并在那里查看...
如果mod_security有罪,你应该在文件/var/log/apache2/modsec_audit.log