OGeek|极客世界-中国程序员成长平台

标题: android - .htaccess HTTP_USER_AGENT 不工作 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 17:09
标题: android - .htaccess HTTP_USER_AGENT 不工作

我的 .htaccess 文件有问题,通常它会检查用户引用者,如果来 self 的站点,它允许访问流式 mp4 文件,但现在我想允许流式传输到 Android 和 iOS 设备,我' m 使用 html5 标签,但它不发送 http_referer 所以我想检查用户代理以允许 mp4 文件的流,这就是我所拥有的,但它不起作用。

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} "Android|iPod|iPhone|iPad" [NC,OR]
RewriteCond %{HTTP_REFERER} !^http://(direct\.|www\.)?mysite\.com/.*$ [NC]
RewriteRule .*\.(mp4)$ http://www.mysite.com [R,NC]



Best Answer-推荐答案


您在这里使用否定,因此您必须丢失 [OR] 并包含 !:

 RewriteCond %{HTTP_USER_AGENT} !(Android|iPod|iPhone|iPad) [NC]

您的规则所做的是重定向当它不是正确的引荐来源并且不是移动用户代理时。你以前有什么:

RewriteCond %{HTTP_REFERER} !^http://(direct\.|www\.)?mysite\.com/.*$ [NC]
RewriteRule .*\.(mp4)$ http://www.mysite.com [R,NC]

是说:如果引用者 不是 来自 http://(direct\.|www\.)?mysite\.com/,则重定向对 http://www.mysite.com 的 .mp4 请求。这里的逻辑是,如果referer正确,他们就可以正常访问mp4文件。

要遵循您所说的引用是否正确如果用户代理是移动的逻辑,则提供 mp4,您需要否定整个事情。 (A or B)-> do something, to !(A or B) -> don't do something,翻译成:!A and ! B -> 不要做某事.

因此,您需要否定移动用户代理检查,而不是 OR 使用 AND(这是重写条件的默认设置)。

关于android - .htaccess HTTP_USER_AGENT 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12967371/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) Powered by Discuz! X3.4