Php 通过.htaccess中的HTTP_REFERER下载

Php 通过.htaccess中的HTTP_REFERER下载,php,apache,.htaccess,mod-rewrite,video,Php,Apache,.htaccess,Mod Rewrite,Video,我有两个域名,一个是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>Do

我有两个域名,一个是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>
我不希望任何人使用视频链接,除非它们来自
allow site.com
,这正是.htaccess文件的目的,并且它工作正常

但主要的问题是,当我点击下载链接时,它会下载一个HTML文件,而不是视频。如果我忽略
重写规则^https://google.com/ [R,L]
,它可以正常工作(视频下载很好),但是视频可以被任何人使用,任何其他领域的人都可以使用

我不明白如何解决这个问题


谢谢。

链接上的
download
属性默认情况下可能会删除推荐人,因此用户下载的是谷歌主页的源代码,而不是视频,因为
RewriteCond
不符合,并且
RewriteRule
生效

您可以尝试在链接上强制使用一个
refererpolicy=“origin”
,看看它是否解决了问题,但目前似乎没有得到很好的支持()

此外,您的重写规则可以简化为:

RewriteEngine On
RewriteBase /

# allow these referers to passthrough
RewriteCond %{HTTP_REFERER} !^http://localhost/allow [NC]
RewriteRule ^ https://google.com/ [R,L] 

链接上的
download
属性默认情况下可能会删除推荐人,因此用户下载的是谷歌主页的源代码,而不是视频,因为
RewriteCond
不满足,并且
RewriteRule
生效

您可以尝试在链接上强制使用一个
refererpolicy=“origin”
,看看它是否解决了问题,但目前似乎没有得到很好的支持()

此外,您的重写规则可以简化为:

RewriteEngine On
RewriteBase /

# allow these referers to passthrough
RewriteCond %{HTTP_REFERER} !^http://localhost/allow [NC]
RewriteRule ^ https://google.com/ [R,L] 

我不确定我说的是什么,因为我不经常使用apache,但你不能让你的htaccess重定向到谷歌,以获得每一个不是localhost/allow的引用吗?那么直接链接呢?没有推荐人?我想下载属性不会发送推荐人,所以你的重写规则会强制用户下载谷歌主页。检查发送的标题购买Chrome dev工具中的下载请求,您将能够看到是否有引用人(我想没有)对不起,这是我的localhost项目我不确定我说的是什么,因为我不经常使用apache,但是您不能让您的htaccess重定向到google,以查找每个不是localhost/allow的引用人吗?那么直接链接呢?没有推荐人?我想下载属性不会发送推荐人,所以你的重写规则会强制用户下载谷歌主页。检查发送给Chrome dev tools的下载请求的标题,您将能够看到是否有引用人(我想没有)对不起,这是我的本地主机项目使用referrerpolicy=“origin”。但它会重定向到google.com。我想推荐人政策只适用于普通链接,而不适用于下载链接。如果删除下载属性会发生什么?我想你可以在一个新的标签上播放视频好吗?(这并不能解决问题,但有兴趣进行测试以排除这一点)不,这不是在播放视频。它重定向到谷歌主页有趣。。。您在测试的所有浏览器中都有相同的行为吗?是的,所有浏览器(chome、firefox、uc和ms edge)都有相同的行为。我使用refererPolicy=“origin”。但它会重定向到google.com。我想推荐人政策只适用于普通链接,而不适用于下载链接。如果删除下载属性会发生什么?我想你可以在一个新的标签上播放视频好吗?(这并不能解决问题,但有兴趣进行测试以排除这一点)不,这不是在播放视频。它重定向到谷歌主页有趣。。。你测试的所有浏览器都有相同的行为吗?是的,所有浏览器都有相同的行为(chome、firefox、uc和ms edge)