&引用;未找到:/406.shtml";来自django
我正在共享主机上使用ApacheFCGi运行django。我已经将其设置为并通过电子邮件不断查看&引用;未找到:/406.shtml";来自django,django,apache,.htaccess,http-status-code-406,Django,Apache,.htaccess,Http Status Code 406,我正在共享主机上使用ApacheFCGi运行django。我已经将其设置为并通过电子邮件不断查看未找到:/406.shtml(我猜s是因为它仅为https)。但是,我已经在中设置了错误文档。htaccess: ErrorDocument 406 /error/406.html 在为每一个错误设置ErrorDocument之前,我从django那里得到了一堆类似的404错误,但406仍然在发生。从grep406到apache错误日志,我看到406.shtml偶尔出现406(而不是404)错误,如
未找到:/406.shtml
(我猜s
是因为它仅为https)。但是,我已经在中设置了错误文档。htaccess
:
ErrorDocument 406 /error/406.html
在为每一个错误设置ErrorDocument
之前,我从django那里得到了一堆类似的404错误,但406仍然在发生。从grep406
到apache错误日志,我看到406.shtml
偶尔出现406(而不是404)错误,如下所示,但不像django给我发电子邮件那样频繁:
[Fri ...] [error] [client ...]
ModSecurity: Access denied with code 406 (phase 1).
Pattern match "Mozilla ... AhrefsBot ...)" at REQUEST_HEADERS:User-Agent.
[file "/usr/local/apache/conf/mod_sec/mod_sec.hg.conf"] [line "126"]
[id "900165"]
[msg "AhrefsBot BOT Request"]
[hostname "www.myhostname.com"]
[uri "/406.shtml"]
[unique_id "..."]
我甚至不确定这是否是apache内部重定向到406.shtml
并将其转发到django,或者是否有某个bot试图直接查找406.shtml
。前者似乎表明ErrorDocument
有问题。后者不是我真正的问题,但是我应该在apache日志中看到404 for406.shtml
,或者什么都没有,因为django将处理404?我怎样才能进一步找到它
我无法通过访问我的网站重现这个问题,但我想知道发生了什么。您的Apache中安装了ModSecurity,这是一个WAF,它试图保护您的网站免受攻击、机器人等攻击。不幸的是,像垃圾邮件一样,这些都是现在网站运行的重要组成部分 ModSecurity是Apache的一个附加模块,它允许您定义规则,然后根据这些规则运行每个请求,并决定是否阻止请求 在这种情况下,规则(900165,在文件“/usr/local/apache/conf/mod_sec/mod_sec.hg.con”中定义)已决定根据用户代理(AhrefsBot)以406状态阻止此请求 Ahref是一个网站,它在网络上爬行,试图建立一个链接数据库。搜索引擎优化人员使用它来查看谁链接到你的网站(反向链接对搜索引擎优化非常重要),因为谷歌(你认为谁是这类信息的更好提供者)只提供链接样本,而不是完整列表 AhrefBot是否存在危险,是否应该阻止它?这是一个意见问题。假设它真的是AhrefBot(一些邪恶的机器人可能会假装是它,以便看起来合法,所以请检查IP地址以查看它来自的主机名)另一方面,这是一个开放网站的价格。你的网站对公众开放,也对那些编写机器人和工具的人开放(好或坏) 为什么会返回406?这就是ModSecurity和/或规则的定义方式。请检查Apache配置。406有点不寻常,通常会出现403(拒绝访问)或500(内部服务器错误) 什么是406.shtml文件?我不知道。A.shtml是一个HTML文件,它还允许服务器端包含将其他文件和代码嵌入到HTML文件中。老实说,它们不再被广泛使用,因为PHP和/或其他语言更为常见。这可能是一种攻击:即,有人试图上传406.shtml文件,然后en导致调用它,使其“执行”并包含文件的内容,从而有可能访问Apache可以看到的Web服务器上不可用的文件,或者用户请求(出于某种原因),或者Apache配置为显示406错误或ModSecurity规则正在重定向到该文件 希望这能提供一个好的背景,我能建议的最好的事情是浏览您的Apache配置文件,以及它加载的任何其他配置文件(包括它必须加载的mod_sec.hg.con文件),以完全了解您的设置和。决定您是否需要在此处执行任何操作 您可以做以下几件事之一:
另外,由于您在共享主机上并且可能没有完全访问权限,因此也不确定您可以使用这些选项中的哪些。如果可以,请与您的主机提供商联系以获取建议。您的Apache中安装了ModSecurity,它是一种WAF,用于保护您的网站免受攻击、机器人程序等。这些,如电子邮件垃圾邮件,都是部分和parc不幸的是,el现在经营一个网站已经有好几天了 ModSecurity是Apache的一个附加模块,它允许您定义规则,然后根据这些规则运行每个请求,并决定是否阻止请求 在这种情况下,规则(900165,在文件“/usr/local/apache/conf/mod_sec/mod_sec.hg.con”中定义)已决定根据用户代理(AhrefsBot)以406状态阻止此请求 Ahref是一个试图建立链接数据库的网站。搜索引擎优化人员使用它来查看谁链接到你的网站(反向链接对搜索引擎优化非常重要),因为谷歌(你认为谁是这类信息的更好提供者)只提供链接样本,而不是完整列表 AhrefBot是否存在危险,是否应将其阻止?嗯,这是一个意见问题。假设它真的是AhrefBot(一些邪恶的机器人可能会假装是它,以便看起来合法,所以检查IP地址以查看它来自的主机名),那么它可能是在浪费您的资源,而对您没有多大好处。另一方面,这是一个开放网络的代价。您的网站可供公众使用,也可供写博文的人使用