使用 .htaccess 限制对文件下载的访问

2024-04-23

我下载了诸如product.exe之类的静态文件。我想限制访问 这些文件带有 .htaccess 文件,以便只有某些用户可以下载它。

我认为这可以用 mod_rewrite 来处理,我在网上找到了这个片段 使用引荐来源网址阻止不良网站。

RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} http://example.com/downloads/confirm/3811 [NC,OR]
RewriteRule .* - [F]

Source: http://www.javascriptkit.com/howto/htaccess14.shtml http://www.javascriptkit.com/howto/htaccess14.shtml

我不想基于引荐来源网址进行阻止,而是希望基于引荐来源网址进行允许。这样,引荐来源网址可以是未经先登录就无法访问的 URL。我正在考虑走这条路线并使用 http 引荐来源网址来授予文件权限。我知道这可能不是最好的方法,而且我猜推荐人可能会被欺骗,但它不必那么安全。我也愿意接受您可能需要限制访问的其他想法。


如果您想基于 Referrer 允许:

RewriteCond %{HTTP_REFERER} !^http://goodsite-1.com/ [NC]
RewriteCond %{HTTP_REFERER} !^http://goodsite-2.com/from/there.php [NC]
RewriteCond %{HTTP_REFERER} !^$ # There are some users/browsers not sending referrer..
RewriteRule .* - [F]

或者您可以基于 cookie 进行允许,您可以使用之前设置的 cookie PHP:

RewriteCond %{HTTP_COOKIE} !^.*cookie-name.*$ [NC]
RewriteRule .* - [F]

或者也只允许 Post 请求:

RewriteCond %{REQUEST_METHOD} !=POST
RewriteRule .* - [F]

以及 HTML 中“发布请求”的链接到要下载的文件:

<form method="post" action="path/to/download.mp3">
  <input type="submit" value="Click here to download!" />
</form>

其实你可以结合这些方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 .htaccess 限制对文件下载的访问 的相关文章

随机推荐