我的网站位于使用 Apache2/PHP5 的托管服务器上。当我发布我的网站时,我发现某些服务器返回 403 Forbidden。我发现在使用方法 PUT 和 DELETE 的请求中会出现此错误。
我无法访问 httpd.conf,也无法查看设置,但我有 .htaccess 文件:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
<IfModule mod_deflate.c>
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE application/atom+xml \
application/javascript \
application/json \
application/rss+xml \
application/vnd.ms-fontobject \
application/x-font-ttf \
application/xhtml+xml \
application/xml \
font/opentype \
image/svg+xml \
image/x-icon \
text/css \
text/html \
text/plain \
text/x-component \
text/xml
</IfModule>
</IfModule>
我可以修改文件来覆盖服务器设置并授予 PUT 和 DELETE 请求的访问权限吗?
答案1
您应该首先检查是什么阻止了 PUT 和 DELETE。这可能是防火墙规则。
要修改设置并允许阻止的方法:
<LimitExcept POST GET DELETE PUT>
#Require valid user
Require all granted
</LimitExcept>