2016-06-08 62 views
0

我想创建一个文件夹,出我的ROOT目录。被称为:'卡拉OK'。从ROOT加载文件

我的根目录是'/ var/www /'。

如果我试图从这个'卡拉OK'目录加载一个.mp3文件,它找不到那个。

我尝试了以下代码:

<script> 
$(document).ready(function(){ startFlash('','../karaoke/sample.mp3',''); }); 
</script> 

<script> 
$(document).ready(function(){ startFlash('','/var/karaoke/sample.mp3',''); }); 
</script> 

如果“卡拉OK”目录是在根目录,下面的代码工作:

<script> 
$(document).ready(function(){ startFlash('','karaoke/sample.mp3',''); }); 
</script> 

我不理解这种情况。如果有人能帮忙,请写一个解决方案。

Thank,KoLi

+0

哪里kayaoke目录中的第一个例子?包含上述脚本的文件的位置是什么? – omerts

+0

在第一个例子中,卡拉OK目录在'/ var /'中。所以不要在ROOT目录中。并且脚本位于'/ var/www /'中的index.php中 – KoLi

+0

尝试使用绝对路径,'/ var/karaoke/sample.mp3'' – C2486

回答

3

这就是根源所在!如果任何客户可以简单地使用../符号突破Web根目录,他们可以拨打../../../etc/shadow../../apps/secretdatabase或其他任何东西。

如果你想你的Apache服务器能够服务于根之外的目录,使用alias

https://httpd.apache.org/docs/2.4/mod/mod_alias.html#alias

Alias指令使存储在其他地方 文件系统中的文件比在DocumentRoot下。带有(以%编码的) 以URL路径开头的URL将被映射到以目录路径开头的本地文件 。 URL路径区分大小写,即使在大小写不敏感的文件系统上也是如此。

Alias "/image" "/ftp/pub/image" 

在你的情况,这将是这样的:

Alias "/karaoke" "/var/karaoke"

+0

这确实奏效。谢谢!! :) – KoLi