apache可以配置为忽略OPTIONS请求吗?

时间:2010-02-12 16:32:10

标签: django apache http webdav

我为一些工作部门运行了一个小型webapp,流量非常低,并且没有那么多用户。它建立在Django之上,并使用apache作为Web服务器。 我有一些东西配置为在发生任何错误时给我发电子邮件,直到昨天这是一件好事 - 没有太多错误,但有时用户在遇到问题时不会说话,所以它让我能够保持最佳状态

昨天我们有了一个新用户,我开始收到大量的错误电子邮件。他不知道出了什么问题,所以我认为这是幕后的事情。当我查看日志时,它们是使用“Microsoft数据访问Internet发布提供程序协议”和“Microsoft Office协议发现”的HTTP OPTIONS请求。直到那时我才听说过这个,但它似乎是某种MS web文件夹/ webDAV的东西。

一个选择是弄清楚他怎么能把它关闭并告诉他停止这样做,但我宁愿只是把头砍掉,做一些像apache只是没有把那些请求传递给Django那里一种可以处理的方法吗?

3 个答案:

答案 0 :(得分:2)

重写选项很好,'Apache Way'可能更像:

<LimitExcept GET POST>
deny from all
</LimitExcept>

...或

<Limit OPTIONS>
deny from all
</Limit>

答案 1 :(得分:2)

我找到了一个由不同框架使用并移植到Django的解决方案。我把它放在生成带有.XLS或.DOC文件链接的HTML的任何视图的顶部:

if request.method == 'OPTIONS':
    response = HttpResponse()
    response['Allow'] = 'GET, HEAD, POST'
    return response

我更喜欢Apache解决方案......假设它不会在Windows方面造成问题。

答案 2 :(得分:1)

怎么样:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^OPTION
RewriteRule .* - [F]

(启用mod_rewrite。)