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