1

私は、イントラネット内のいくつかの遠隔地から、またインターネット全体から閲覧できる Web サイトに取り組んでいます。リモート ロケーションへの帯域幅の制限により、特定のファイル タイプ (ビデオ ファイル、Flash オブジェクトなど) の条件付き書き換えを実装しています。これらのファイルは、各物理ロケーション内のサーバーにローカルに保存されます。ただし、セキュリティ要件により、これらのリモート マシンで Web サーバーをアクティブ化できないため、Samba 共有を使用して UNC パスにリダイレクトできる必要があります。

次のように、中央のApacheサーバーでmod_rewriteを使用することにより、現在のニーズに合った実用的なソリューションがあります。

RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^10\.
RewriteCond %{REQUEST_URI} \.(swf|mp3|wav|wmv|mov)$
RewriteRule ^(.*)/([^/]+)$ unc_redirect.php?server=myserver&path=sharename&file=$2 [R,L]

次に、php スクリプトは header('Location: ') を使用して、次のように要求されたファイルの UNC パスにリダイレクトします。

<?php
$Str_Location='file://///'.$_GET["server"].'/'.$_GET["path"].'/'.$_GET["file"];
header('Location: '.urldecode($Str_Location), 1, NULL);
?>

前述したように、このソリューションは現在のニーズに対して十分に機能しているようです。ただし、これは Internet Explorer でのみ機能し、サイトが IE によって「信頼されている」場合にのみ機能します (Firefox、Safari、および Opera はすべて動作が少し異なりますが、php スクリプトからのリダイレクトには従いません)。書き換え条件をトリガーする PC で使用できるブラウザは IE だけなので、これは今のところ本当に問題ではありませんが、同じ (またはより良い) 結果を達成するためのより良い/よりエレガントな方法があるように思えます。 .

リダイレクトが IE で機能し、他のブラウザーでは機能しない理由については、私自身の理論がありますが、私は基本的にこの分野では完全な初心者なので、専門家に意見を求めることができると思いました.

4

0 に答える 0