如何在Cloudflare中仅设置HTTP OPTIONS方法以允许GET和POST



我在网站上启用了Cloudflare免费SSL,我需要更改HTTP OPTIONS方法以仅允许GET和POST。

我在SSH中使用了这个命令来检查可用的方法:

卷曲-X选项https://example.com-I

相关结果为:

...
*  issuer: C=US; O=Cloudflare, Inc.; CN=Cloudflare Inc ECC CA-3
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0xxxx)
> OPTIONS / HTTP/2
> Host: example.com
> user-agent: curl/7.68.0
> accept: */*
...

从";接受:/";我知道所有的方法都是允许的,我想改变这一点。

我已经尝试编辑服务器上的.htaccess文件,并添加了

RewriteEngine on
RewriteCond %{THE_REQUEST} !^(POST|GET) /.* HTTP/1.1$
RewriteRule .* - [F]

它似乎不起作用,我认为这可能是我可以在Cloudflare中修复的问题,但不知道我应该如何做。有人知道这是否可以做到,并能为我指明正确的方向吗?

谢谢

我认为您可能混淆了几个概念与表达问题的方式。除了GET/PUT之外,还有很多方法可以阻止任何HTTP方法(既可以使用Cloudflare,也可以使用htaccess直接在服务器上(。

然而,因为你提出了OPTIONS方法,听起来你想广播哪些方法可用?在这种情况下,您需要阅读"访问控制允许方法"标题-

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods

从本质上讲,这是在发出OPTIONS请求后告诉浏览器(或客户端(给定端点可用的方法。

要使用它,您可以使用htaccess或Cloudflare添加标头。

最新更新