我在网站上启用了Cloudflare免费SSL,我需要更改HTTP选项方法,只允许GET和POST。
我在SSH中使用了这个命令来检查哪些方法可用:
curl -X OPTIONS -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]它似乎不起作用,我想这可能是我可以在云彩中修复的东西,但我不知道该怎么做。有没有人知道这是否可以做到,并能指出我的正确方向?
谢谢
发布于 2022-02-25 20:01:05
我想你可能把一些概念和你表达问题的方式搞混了。除了GET / PUT (使用Cloudflare,或者直接在您的服务器上使用htaccess)之外,还有许多方法来阻止任何HTTP方法。
但是,由于您提出了OPTIONS方法,听起来您想要广播哪些方法可用?在这种情况下,您需要阅读“访问控制-允许-方法”标题-
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods
本质上,这就是在发出选项请求后告诉浏览器(或客户端)哪些方法可用于给定的端点。
要使用它,可以使用htaccess或Cloudflare添加标头。
https://stackoverflow.com/questions/71269290
复制相似问题