501 Method Not Implemented
The requested method is not implemented by this server.
OPTIONS、TRACE、CONNECT、PATCH 等方法被 mod_security 規則攔截。
# /etc/httpd/conf.d/mod_security.conf
# LoadFile /usr/lib/libxml2.so.2
# LoadModule security_module modules/mod_security2.so
# LoadModule unique_id_module modules/mod_unique_id.so
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
# mod_security.conf 或 crs-setup.conf
# 允許 OPTIONS (CORS 預檢必需)
SecRule REQUEST_METHOD "^OPTIONS$" "id:10001,phase:1,pass,nolog,ctl:ruleEngine=Off"
# 允許 PATCH (RESTful API 常用)
SecRule REQUEST_METHOD "^PATCH$" "id:10002,phase:1,pass,nolog"
# 或調整 CRS 規則
SecAction "id:900130,phase:1,pass,nolog,setvar:tx.allowed_methods=GET HEAD POST OPTIONS PUT DELETE PATCH"
$ telnet www.example.com 80
Trying 192.0.32.10...
Connected to www.example.com.
Escape character is '^]'.
OPTIONS / HTTP/1.1
Host: www.example.com
HTTP/1.1 200 OK
Allow: GET, HEAD, POST, OPTIONS, TRACE
Content-Length: 0
Connection: close
TraceEnable Off# Nginx 預設支援常見方法,若需限制
location / {
limit_except GET POST HEAD { deny all; }
# 或自定義錯誤頁
error_page 405 /405.html;
}