Request:
OPTIONS / HTTP/1.1
Host: webcat.staci.com
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.21
Accept: */*
Response:
HTTP/1.1 200 OK
Date: Thu, 01 Oct 2015 12:24:59 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Allow: GET,HEAD,POST,OPTIONS,TRACE
Vary: Accept-Encoding,User-Agent
Content-Length: 0
Keep-Alive: timeout=7, max=95
Connection: Keep-Alive
Content-Type: httpd/unix-directory
Set-Cookie: BIGipServerwebcat-ssl=192938503.47873.0000; path=/; httponly; secure
我想在我的Apache服务器上禁用HTTP OPTIONS,但我想保留GET
,POST
,我想PING
我的服务器。
我怎么能这样做?
我的httpd.conf:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^ (GET,POST,HEAD)
RewriteRule .* – [R=405,L]
答案 0 :(得分:4)
使用RewriteCond无法禁用OPTIONS方法。 您必须使用LimitExcept指令禁用。
以下是可以在Apache配置之外添加的代码段:
<Location />
<LimitExcept GET POST>
order deny,allow
deny from all
</LimitExcept>
</Location>
请不要忘记重新启动网络服务器:)
答案 1 :(得分:0)
如果您想将其应用于特定项目:
只需将这些行添加到.htaccess
文件中对我来说是有效的:
RewriteCond %{REQUEST_METHOD} ^(OPTIONS)
RewriteRule .* - [F]
为此,请确保已启用mod_rewrite
,并在这些行之前使用RewriteEngine On
。