我有Linux托管,我想通过指定的URL获取文件,因为这些文件仅供注册用户使用。但是当我访问其目录URL时,所有文件都会显示出来。
示例:www.site.com/files(这应该重定向到主页)
示例:www.site.com/files/filename.zip(这应该可以下载文件)
我也尝试过.htaccess modrewite,但是对于files目录,它也没有显示该文件。
任何想法,如何解决这个问题。
答案 0 :(得分:2)
索引:
重写:
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ / [R]
答案 1 :(得分:1)
将目录权限更改为711.您会说:chmod 711 files
其中files
是包含您的文件的目录。您还可以在目录index.html
中添加名为files
的文件,当有人尝试访问www.site.com/files
时,默认情况下会显示该文件。
答案 2 :(得分:1)
index
文件。
您也可以在.htaccess
或httpd.conf
文件中添加此行:
IndexIgnore *
答案 3 :(得分:1)
要关闭apache自动生成的目录列表,请添加
Options -Indexes
到.htaccess
。有关Options
的更多信息,请参阅documentation。请参阅Apache mod_autoindex
module的文档以自定义索引页的显示。
答案 4 :(得分:0)
只需将index.php
放入相关文件夹中,只需包含:
<?php
header('Location: http://'.$_SERVER['HTTP_HOST'].'/');
die;
抛弃.htaccess
。
答案 5 :(得分:0)
只需用download.php替换直接下载链接,如下所示:
<?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文件的标头。它将在不打开文件夹视图的情况下下载文件。
希望它会对你有所帮助。