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