【问题标题】:Get Directory contents but dont show directory获取目录内容但不显示目录
【发布时间】:2013-05-12 22:18:27
【问题描述】:

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

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

示例:www.site.com/files/filename.zip(这应该可以下载文件)

我也尝试了 .htaccess modrewite,但文件目录也没有显示文件。

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

【问题讨论】:

    标签: php linux .htaccess


    【解决方案1】:

    索引:

    1. 禁用目录索引

    重写:

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

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

    【讨论】:

      【解决方案2】:

      不过,这是一个蹩脚的解决方法;您可以在目录中包含一个空的index 文件。

      您也可以在.htaccesshttpd.conf 文件中添加这一行:

      IndexIgnore *
      

      【讨论】:

      • 哦!我真的是个白痴,我没想到这一点.. 呵呵:D
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        Options -Indexes
        

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

        【讨论】:

          【解决方案5】:

          只需将index.php 放入相关文件夹中,仅包含:

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

          然后放弃.htaccess

          【讨论】:

            【解决方案6】:

            只需将直接下载链接替换为如下所示的 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 文件。它会在不打开文件夹视图的情况下下载文件。

            希望对你有所帮助。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-01-13
              • 1970-01-01
              • 2012-11-24
              • 1970-01-01
              • 2013-12-16
              • 2018-12-01
              相关资源
              最近更新 更多