我可以将我的网站资源设为私有吗?
Posted
技术标签:
【中文标题】我可以将我的网站资源设为私有吗?【英文标题】:Can I make my website's resources private? 【发布时间】:2020-06-26 02:38:19 【问题描述】:我想将我网站的图片等资源设为私有,并且只能由我主机上的本地文件加载。谁能告诉我怎么做,拜托
【问题讨论】:
问题是您所说的“私有”和“由本地加载”......它们是否必须通过外部请求访问?如果不是,则将它们放在您的 http 主机的DOCUMENT_ROOT
文件夹之外,如果是,则另外使用路由脚本来访问这些资源,从而允许您实现所需的任何限制。
【参考方案1】:
如果您有单独的图片文件夹,请在您拥有图片的文件夹中创建一个 .htaccess 文件,并将以下内容添加到该 .htaccess 文件中:
Require local #Make sure there is no file in the directory
要隐藏所有目录中的大多数图像,请将其添加到根 .htaccess 文件中:
<FilesMatch "\.(jpeg|jpg|png|webp|gif)$">
Require local
</FilesMatch>
我更喜欢第二种,因为它的灵活性。
或者,如果您具有 root 访问权限(如果您在 VPS 中/或在您自己的服务器上),则使用以下命令:
打开 httpd.conf 或 apache2.conf(其中任何一个),并添加以下内容:
<Directory "/path/to/directory/with/images">
Require local
</Directory>
或者,如果包含图像的目录还包含需要公开的文件,请执行以下操作:
<Directory "/path/to/directory/with/images">
<FilesMatch "\.(jpeg|jpg|png|webp|gif)$">
Require local
</FilesMatch>
</Directory>
或者,您可以将图像文件移出 DOCUMENT_ROOT(@arkascha 的想法)
【讨论】:
以上是关于我可以将我的网站资源设为私有吗?的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用 cpanel 将我的 React Native 应用程序托管到我的网站吗?
定期网站解析消耗大量数据下载。我应该将我的逻辑迁移到服务器吗?如何?
我可以使用 aws amplify 和 @auth 装饰器将 GraphQL 突变设为私有吗?这被认为是一种安全的方法吗?