You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过.htaccess阻止上传目录的HTTP GET请求并仅允许POST请求?

解决方案:仅允许POST请求访问上传目录

你之前的.htaccess配置是靠HTTP Referer来拦截媒体文件,这和你要的「只允许POST、禁止GET请求」的需求完全不搭,所以才会出现拦截所有请求的问题。下面给你针对性的配置方案:

方案1:限制整个上传目录仅接受POST请求

如果要让整个上传目录(比如/uploads/)只允许POST请求访问,拒绝所有GET请求,用下面的配置:

RewriteEngine On

# 替换成你的实际上传目录路径,比如/uploads/
RewriteCond %{REQUEST_URI} ^/uploads/ [NC]
# 检查请求方法是否为GET
RewriteCond %{REQUEST_METHOD} =GET
# 返回403禁止访问,L表示终止后续规则处理
RewriteRule ^ - [F,L]

配置细节说明:

  • %{REQUEST_URI} ^/uploads/ [NC]:匹配所有请求路径以/uploads/开头的请求,[NC]表示不区分大小写
  • %{REQUEST_METHOD} =GET:精准匹配请求方法为GET的情况
  • [F,L]F代表返回403 Forbidden状态码,L代表停止执行后续的Rewrite规则

方案2:仅限制目录内的视频/图片文件

如果你只需要针对目录内的特定媒体文件(比如mp4、mp3、avi、jpg等)做限制,而非整个目录,可以用这个配置:

RewriteEngine On

# 匹配上传目录
RewriteCond %{REQUEST_URI} ^/uploads/ [NC]
# 匹配指定的媒体文件类型,可按需添加后缀
RewriteCond %{REQUEST_FILENAME} \.(mp4|mp3|avi|jpg|png|gif)$ [NC]
# 拦截GET请求
RewriteCond %{REQUEST_METHOD} =GET
RewriteRule ^ - [F,L]

这样配置后,只有POST请求能访问目标目录(或指定文件),所有GET请求都会被直接拒绝,完全符合你的需求。

内容的提问来源于stack exchange,提问作者The IRF

火山引擎 最新活动