2013-05-12 66 views
0

我有Linux主机,我只想通过指定的URL获取文件,因为这些文件仅用于注册用户。但是当我访问它的目录URL时,所有文件都显示出来了。获取目录内容,但不显示目录

例子:www.site.com/files(这应该重定向到主页)

例子:www.site.com/files/filename.zip(这应该是能够下载文件)

我也尝试了一个.htaccess modrewite但文件目录它也没有显示该文件。

任何想法,如何解决这个问题。

回答

1

尽管如此,仍然是一种蹩脚的解决方法;你可以在目录中包含一个空的index文件。

而且你可以在你的.htaccesshttpd.conf文件中加入这一行:

​​
+0

哦!我真的是一个白痴,我没有想过这个。他他:D – 2013-05-12 22:33:00

1

将目录权限更改为711.您会说:chmod 711 files其中files是包含文件的目录。您还可以在目录files中添加一个名为index.html的文件,当有人试图访问www.site.com/files时,该文件将默认显示。

+0

好的谢谢你,我试试 – 2013-05-12 22:25:38

2

索引:

  1. 禁用目录索引

重写:

  1. 条件:请求的文件是不是一个文件(目录是不是文件)
  2. 规则:重定向到文档根目录

Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/[R]

0

只要把index.php在只是包含:

<?php 

header('Location: http://'.$_SERVER['HTTP_HOST'].'/'); 
die; 

并沟.htaccess

1

要关闭Apache的自动生成的目录列表,添加

Options -Indexes 

.htaccess。有关Options的更多信息,请参阅documentation。请参阅Apache的mod_autoindex module的文档以自定义索引页面的显示。

+0

谢谢@ andreqdotn – 2013-05-12 22:42:54

0

只是用的东西的download.php这样的更换直接downloadlink:

<?php 
$downloadfile = "files/filename.zip"; 
$filename = "filename.zip"; 
$filesize = filesize($downloadfile); 

header("Content-Type: application/zip"); 
header("Content-Disposition: attachment; filename='$filename'"); 
header("Content-Length: $filesize"); 

readfile($downloadfile); 
exit; 
?> 

你可以看到我们发送的文件头和的。邮件头中的zip文件。它将下载文件而不打开文件夹视图。

希望它能帮助你。