apache .htaccess 仅向经过身份验证的用户显示目录索引

标签 apache .htaccess authentication configuration

我的网络服务器上有这个目录结构:

web
    privatedir1
    privatedir2
    publicdir
        file1
        file2
        file3

我想使用 .htaccess 文件设置以下功能:
  • 用户“admin”(经过身份验证)可以无限制地访问所有目录(包括目录索引)
  • 其他任何人都可以下载 file1、file2、file3,但看不到 publicdir 的列表(索引)

  • 你能描述一下如何用 .htaccess 文件来实现吗?
    我知道如何允许/禁止目录索引,但我不知道如何有条件地做到这一点(取决于用户是否通过身份验证)

    非常感谢您。

    最佳答案

    这是一个非常基本的示例,但这就是您可以做到的。

    <Directory /srv/dev/>
            AllowOverride All
            Options +Indexes
    
            AuthType Basic
            AuthUserFile /srv/.htpasswd
            Require valid-user
    </Directory>
    
    <Directory /srv/dev/apps/>
            <If "%{REQUEST_URI} != '/'">
            Require all granted
            </If>
    </Directory>
    

    关于apache .htaccess 仅向经过身份验证的用户显示目录索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14268437/

    相关文章:

    mysql - 防火墙后的 .NET SQL 查询身份验证

    php - 尝试使用 PHP 和 cURL 登录站点?

    apache - 设置 Apache IP 白名单

    c - 优胜美地 svn 1.6.6 段错误

    regex - 仅使用 mod_rewrite 重定向主页

    linux - htaccess 将 www 重定向到非 www 不工作

    php - ssl过期后强制将https重定向到http

    javascript - 通过 Apache/Varnish 的 Websocket 失败

    apache - 如何从运行Tomcat基本镜像的Docker容器中删除ROOT文件夹

    PHP 登录后不保存 $_SESSION 变量