【发布时间】:2017-05-11 07:04:51
【问题描述】:
我有 2 个域,一个是 allow-site.com,另一个是 resource.com。
resource.com 的文件结构是:
root
|--- videos
| |---> 01.mp4
| |---> 02.avi
|--- index.php
|--- .htaccess
|
index.php 包含如下下载链接:
<a href="http://localhost/resource/videos/01.mp4" download>Download</a>
在 .htaccess 中,我只通过 HTTP_REFERER RewriteCond 允许 allow-site.com 域,它允许 allow-site.com 的视频播放器正确播放视频。
.htaccess 文件是:
RewriteEngine On
RewriteBase /
# allow these referers to passthrough
RewriteCond %{HTTP_REFERER} ^http://localhost/allow [NC]
RewriteRule ^ - [L]
# redirect everything else
RewriteRule ^ https://google.com/ [R,L]
我不希望任何人使用视频链接,除非它们来自 allow-site.com,这是这个 .htaccess 文件的目的,它工作正常。
但主要问题是当我点击下载链接时,它下载的是 HTML 文件而不是视频。如果我忽略RewriteRule ^ https://google.com/ [R,L],它会按预期工作(视频下载正常),但任何其他域的任何人都可以使用这些视频。
我不明白如何解决这个问题。
谢谢。
【问题讨论】:
-
我不确定我在说什么,因为我不经常使用 apache,但你不能让你的 htaccess 为每个不是 localhost/allow 的引用者重定向到谷歌吗?那么直接链接呢?没有推荐人?
-
我猜下载属性不会发送引荐来源网址,因此您的重写规则会强制用户下载谷歌主页。在 Chrome 开发工具中检查发送的请求头购买下载请求,您将能够查看是否有推荐人(我猜没有)
-
对不起,这是我的 localhost 项目
标签: php apache .htaccess mod-rewrite video