我有一个包含一些zip文件的文件夹。我想拒绝所有直接下载它们的请求,除非用户代理是我指定的类型(例如,user-agent:myuseragent
)
.htaccess文件怎么可能?
被拒绝的请求将重定向到索引文件,而接受的请求将下载该文件。
例如。如果用户尝试http://download.com/files/myfile.zip他们会被拒绝,但如果使用'myuseragent'的用户访问相同的网址,则会下载该文件
据我所知,使用者可能会被欺骗。这是免费提供文件的温和保护
答案 0 :(得分:2)
在这里你可以使用 .htaccess和mod_rewrite 来做到这一点:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !=myuseragent
RewriteRule ^files/.*$ - [F,L]
如果用户代理不等于/files/
,上述规则将指示Apache为myuseragent
文件夹中的任何文件发出403 Access Denied响应。
如果您要发出404 File Not Found响应,请将[F,L]
替换为[R=404,L]
。
如果要将此类失败请求重定向到主页,请使用此规则(您可以将重定向从302更改为您喜欢的任何其他重定向代码):
RewriteCond %{HTTP_USER_AGENT} !=myuseragent
RewriteRule ^files/.*$ / [R=302,L]