电子学习平台:课程讲师将在为课程创建课程时上传视频。
图
{
"success" : [
{
"courseid" : "c1",
"lessonid" : "l1",
"title" : "Sample lesson #1",
"video" : "http://www.example.com/lesson/l1/video.mp4",
"videothumbnail" : "http://www.example.com/lesson/l1/videothumbnail.png"
}
]
}
当学生对课程 c1 的课程 l1 进行GET请求时,服务器将回复以下JSON响应(如果学生已登录并且报名参加课程)
#prevent direct access to the lesson folder and its contents
order deny,allow
deny from all
allow from XXX.XXX.XXX.XXX
要求
仅可从中获取课程视频 的 named components 学生登录并注册课程时的页面。
我做了什么
我已阻止直接访问课程视频,方法是在 .htaccess 文件中写下以下一行,该文件放在课程文件夹中。
#prevent direct access to the lesson folder and its contents
deny from all
其中,XXX.XXX.XXX.XXX是服务器的IP地址。
我甚至尝试了以下内容:
Forbidden
You don't have permission to access /lesson/l1/video.mp4 on this server.
现在,如果在浏览器中复制粘贴视频链接,则会显示以下错误消息。
Failed to load resource: the server responded with a status of 403 (Forbidden)
因此,当我在浏览器中复制粘贴视频链接时,它成功阻止了视频的直接访问http://www.example.com/course?courseid=c1&lessonid=l1
问题
但是当我尝试从课程页面http://www.example.com/lesson/l1/video.mp4访问视频时,我在浏览器控制台中收到以下错误消息。
{{1}}
请建议一种方法,只能从课程页面访问课程视频。
后端
php中的API
MySQL db
用于缓存的Redis
答案 0 :(得分:1)
您可以将includes文件夹移出web-root。如果要阻止直接访问整个包含文件夹,则可以将.htaccess文件放在包含以下内容的文件夹中:
<div id="branddraw">
<div class="drawings col-md-2">
<div class="pre-scrollable">
<div class="thumb">
<a class="thumbnail" href="#" id="img1">
<img class="img-responsive" src="./assets/colour_imgs/Kcoloring/img1.png" alt="">
</a>
</div>
<div class="thumb">
<a class="thumbnail" href="#" id="img2">
<img class="img-responsive" src="./assets/colour_imgs/Kcoloring/img2.png" alt="">
</a>
</div>
<div class="thumb">
<a class="thumbnail" href="#" id="img3">
<img class="img-responsive" src="./assets/colour_imgs/Kcoloring/img3.png" alt="">
</a>
</div>
<div class="thumb">
<a class="thumbnail" href="#" id="img4">
<img class="img-responsive" src="./assets/colour_imgs/Kcoloring/img4.png" alt="">
</a>
</div>
<div class="thumb">
<a class="thumbnail" href="#" id="img5">
<img class="img-responsive" src="./assets/colour_imgs/Kcoloring/img5.png" alt="">
</a>
</div>
<div class="thumb">
<a class="thumbnail" href="#" id="img6">
<img class="img-responsive" src="./assets/colour_imgs/Kcoloring/img6.png" alt="">
</a>
</div>
</div>
</div>
</div>
像这样你无法打开该文件夹中的任何文件,你可以将它们包含在php中而不会出现任何问题。