レンタルサーバーや自宅サーバーをapacheで運用しているときにドメインを
いくつか持っていると特定のドメインでしかアクセスできないように
.htaccessで次のように制限している場合があります。 
 
SetEnvIf Host "^www\.example\.com$" host_ok 
order deny,allow 
deny from all 
allow from env=host_ok 
 
この場合Macのブラウザからmms://でwmvファイルを指定してWindows Media Player 9を起動して
再生しようとしても「現在の状態では、要求は無効です」とか
「サーバーが応答しません」というエラーが発生して再生できません。 
 
これを回避するにはwmv用のディレクトリを作ってそのディレクトリの
.htaccessに次のように設定します。
ただし特定ドメインのアクセスの指定が無効になります。 
 
SetEnvIf Request_URI "\.wmv$" stream_ok 
order deny,allow 
deny from all 
allow from env=stream_ok 
 
この設定をしなくてもファイルをダウンロードしてから再生すればMacでも映像を見ることは出来ます。
またWindowsにはこの設定は必要なかったりします。 
 
その後、mod_rewriteが使えれば特定ドメインだけ残して全てアクセス禁止すれば
Macでもwmvの再生に支障がないことが分かりました。結局こんな感じになりました。 
 
RewriteEngine on 
RewriteCond %{HTTP_HOST} www\.example\.jp [OR] 
RewriteCond %{HTTP_HOST} example\.net [OR] 
RewriteCond %{HTTP_HOST} ^www\.example\.org 
RewriteRule .* - [F] 
SetEnvIf Request_URI "\.wmv$" stream_ok 
order deny,allow 
deny from all 
allow from env=stream_ok 
 
それにしてもなぜSetEnvIf Hostの指定ではMacで上手く再生できないのは謎のままです。 
 
 |