在wordpress网站中,我正在开发的是我的数字产品存储在uploads文件夹中。我发现当您知道该网址时,该文件夹可以公开访问。 所以当我输入http://my-site.com/wp-content/uploads时,我得到一个目录列表,其中所有暴露的文件都很容易下载。那不是我想要的。我使用这个.htaccess代码在互联网上找到了一个解决方案:
IndexIgnore *
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?my-site\.com/ [NC]
RewriteCond %{REQUEST_URI} !hotlink\.(gif|png|jpg|doc|xls|pdf|html|htm|xlsx|docx) [NC]
RewriteRule .*\.(gif|png|jpg|doc|xls|pdf|html|htm|xlsx|docx)$ http://my-site.com
这很好用,每个输入网址的人都会被重定向到主页。 购买商品的下载正常,因为请求来自网站内。但是,必须可以访问徽标文件(在WooCommerce电子邮件中使用)。现在,徽标未显示在电子邮件中,因为系统认为它不是来自站点内的请求,并且访问被拒绝。我可以使用上面代码的更新版本授予对此文件的访问权限,如果是,我必须做出哪些更改?请指教。
很快就会发来HTH。答案 0 :(得分:0)
首先,您可以使用Options -Indexes
禁用.htaccess中的目录列表。有关它的更多信息,请参阅https://wiki.apache.org/httpd/DirectoryListings
然后,使用标题Referer
作为安全措施可能很危险,因为它很容易更改。
您应该考虑使用脚本替换此部分,该脚本管理一种访问列表以允许或拒绝对原始文件的访问(例如,在Amazon S3上的临时密钥)。