2

.htaccess ファイルに問題があります。通常はユーザー リファラーをチェックし、サイトからの場合はストリーム mp4 ファイルへのアクセスを許可しますが、Android および iOS デバイスへのストリーミングを許可したいので、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]
4

2 に答える 2

2

ここでは否定を使用しているため、 を失い、[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/、.mp4 要求を にリダイレクトしhttp://www.mysite.comます。ここでのロジックは、リファラーが正しければ、mp4 ファイルに問題なくアクセスできるということです。

リファラーが正しいどうか、またはユーザーエージェントがモバイルである場合に mp4 を提供するというロジックに従うには、すべてを否定する必要があります。(A or B)-> do something!(A or B) -> don't do something変換されます!A and !B -> don't do something

そのため、モバイル ユーザー エージェント チェックを無効にし、ORの代わりにANDを使用する必要があります (書き換え条件のデフォルトです)。

于 2012-10-19T04:37:16.470 に答える
1

試す

RewriteCond %{HTTP_USER_AGENT} (Android|iPod|iPhone|iPad) [NC,OR]
于 2012-10-19T04:26:56.943 に答える