Tôi đã thực hiện chặn các phương thức khác ngoài GET, POST và OPTIONS trong apache.conf và khi tôi cố chạy máy chủ qua IP thì việc chặn hoạt động.
Nhưng khi định cấu hình chặn tương tự trên tên miền phụ (thông qua các trang có sẵn), việc chặn này không xảy ra.
Tôi có thể đã làm gì sai?
apache2.conf
<Directory /var/www/>
Options None
AllowOverride None
Require all granted
<LimitExcept GET POST OPTIONS>
Require all denied
</LimitExcept>
</Directory>
các trang web có sẵn/tên miền phụ.example.com.conf
<VirtualHost *:80>
ServerName subdomain.example.com
ServerAlias subdomain.example.com
DocumentRoot /var/www/html/subdomain.example.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Header append X-FRAME-OPTIONS "SAMEORIGIN"
RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /certs/example.crt
SSLCertificateKeyFile /certs/example.key
SSLCertificateChainFile /certs/example-intermediary.crt
Protocols h2 http/1.1
Header always set Strict-Transport-Security "max-age=31536000"
Header append X-FRAME-OPTIONS "SAMEORIGIN"
<Directory /var/www/html/subdomain.example.com>
Options None
AllowOverride None
Require all granted
<LimitExcept GET POST OPTIONS>
Require all denied
</LimitExcept>
</Directory>
ServerName subdomain.example.com
ServerAlias subdomain.example.com
DocumentRoot /var/www/html/subdomain.example.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Khóa này không hoạt động vì khi thực hiện yêu cầu bằng PUT, DELETE, LOCK, v.v., nội dung trang được trả về bình thường.