我想使用 .htaccess 文件限制对一个或多个文件的访问。基本上,没有人应该能够使用文件的直接链接来下载文件。但是,应该可以从我的网站访问该文件。
例如,假设我有一个名为 Presentation.ppt 的文件。我希望访问者可以通过我的网站访问它,但如果他们尝试下载它或使用直接链接访问它,那么服务器应该拒绝该请求。
是否可以使用.htaccess 来做到这一点?
先感谢您,
您可以拒绝访问每个 IPA 的目录,但服务器的:
<Directory /dir/of/presentation>
Order Allow,Deny
Allow from 127.0.0.1
Deny from All
</Directory>
正如你所指出的那样,那个笨蛋的工作。
将 Mod Rewrite 与将 /dir/of/presentation/* 映射到禁止页面的规则一起使用怎么样。这样直接链接就不行了。请求http://site/content/presentation.ppt
可能被重定向到http://site/forbidden.html
在内部,您可以创建一个链接以http://authorizedRequest/presentation.ppt
映射到http://site/content/presentation.ppt
这只是通过默默无闻的安全。它不会阻止任何人直接在他们的浏览器中输入你的“秘密”URI。
例如,假设我有一个名为 Presentation.ppt 的文件。我希望访问者可以通过我的网站访问它,但如果他们尝试下载它或使用直接链接访问它,那么服务器应该拒绝该请求。
是否可以使用.htaccess 来做到这一点?
这是可能的,但有办法绕过它。您需要检查浏览器发送的引荐来源网址,但任何人都可以欺骗,有时浏览器可能会选择不包含引荐来源网址。
如果您尝试保护文件Presentation.ppt
,请将这些规则放在文档根目录的 htaccess 文件中:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^(https?://)?your_website.com
RewriteRule ^/?path/to/Presentation.ppt - [L,F]
如果要保护文件夹/path/images/
,则:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^(https?://)?your_website.com
RewriteRule ^/?path/images - [L,F]
谢谢大家的答案。我已经尝试了你所有的建议,但我仍然无法让它发挥作用。但是,我确实想出了一个可行的解决方案。
第 1 步:通过删除单词索引来禁用或关闭Web 服务器上的选项索引,使其他所有内容保持不变。在某些情况下,您可以使用 .htaccess 文件执行此操作。如果您无法使用 .htaccess 执行此操作,那么您将不得不在您的服务器中查找 httpd.conf 文件。它通常位于 etc/apache/httpd.conf 或 etc/httpd/conf/httpd.conf。找到它后,在其中关闭此选项。
第 2 步:在您的网页文件夹中创建一个文件夹,然后随意命名,但要确保它不容易被猜到或很明显(即 Joe33CompanyOCT2MeBoss)。然后,将您想要隐藏或保护访问者的文件移动到此文件夹中。
第 3 步:在 robots.txt 文件中,通过输入“禁止您的文件夹名称”来禁止所有机器人或爬虫索引您的文件夹或该文件夹中的文件。
第 4 步:然后您必须使用下面的类似代码创建一个 PHP 文件。下面的代码将强制下载。
$File1 = 'http://yourwebsite.com/Joe33CompanyOCT2MeBoss/Presentation.ppt';
header("Content-Disposition: attachment; filename=\"".basename($File1)."\"");
header("Content-Type: application/force-download");
ob_end_clean();
flush();
readfile($File1);
exit;
这种方式文件的直接路径对您的访问者隐藏,即使他们可以直接下载文件,他们也不知道文件的实际 URL,因为强制下载 php 代码不会显示文件的实际路径。所以,现在我网站的访问者必须通过我的网页下载这个文件,而不是直接下载。
以下 stackoverflow 问题对帮助我解决编程问题非常有帮助。谢谢,
最简单的(虽然不是防弹的)是在 HTTP_REFERER 不正确时重定向用户代理。这可以在服务器配置中使用 mod_rewrite 或(第二选择)在 .htaccess 类文件中完成。它有助于防止简单的热链接(通过 url 引用您的文件的链接)。
您应该阅读 moapaches d_rewrite 的详细文档。