我有一个RewriteRule .* index.php
来捕捉一切
所有其他东西似乎都顺利通过,甚至OPTIONS /
。但 Apache 似乎不让我处理OPTIONS *
,事实上它只返回一个空白的 200 OK ,甚至没有包含 Allow 标头。
% curl -X OPTIONS http://localhost:8080 -i -v --request-target "*"
* Trying 127.0.0.1:8080...
* Connected to localhost (127.0.0.1) port 8080 (#0)
> OPTIONS * HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.88.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Thu, 06 Jul 2023 00:25:39 GMT
< Server: Apache/2.4.57 (Unix) PHP/8.2.7
< Content-Length: 0
<
* Connection #0 to host localhost left intact
是否有人知道这是否可能,如果可能的话,如何让星号选项通过,或者只是以某种方式识别它,以便我可以让它用正确的允许方法集进行回复(在 .htaccess 中,而不是配置中)?
我已经在 Google 上搜索了一整天,但正如您所想象的,搜索关键字选项和*是徒劳的。
编辑:为了清楚起见,我将补充说明,诸如CONNECT
和之类的基础结构方法TRACE
不会被传递。我怀疑OPTIONS *
这与在到达 .htaccess 之前处理的请求相同,尽管不一定如此,因为服务器不知道脚本支持哪些方法(因此我想直接指定它们,如果不在脚本中,则在 htaccess 中)。