使用标题('Location:')重定向到UNC路径

时间:2012-04-18 16:47:17

标签: php redirect header unc

我正在开发一个网站,该网站将从我们内部网中的几个远程位置以及整个互联网上进行查看。由于远程位置的带宽限制,我们正在对某些文件类型(视频文件,闪存对象等)实施条件重写,这些文件类型将本地存储在每个物理位置的服务器上。但是,由于安全性要求,我们无法在这些远程计算机上激活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脚本然后使用标题('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脚本的重定向)。这不是一个真正的问题,因为IE是唯一可用于触发重写条件的PC浏览器,但在我看来,可能有更好/更优雅的方式来实现相同(或更好)的结果

我有自己的理论关于重定向在IE中工作的原因,但没有其他浏览器,但我基本上是这方面的一个完整的新手,所以我想我可能会请专家为你采取。

0 个答案:

没有答案