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/

    相关文章:

    php - 从 Laravel 5 URL 中删除 public 和 index.php 的最佳方法

    php - 子目录 'overriding' 父 htaccess 中的 .htaccess

    .htaccess - 拒绝时重定向 |访问

    facebook - getLoginStatus 总是返回 not_authorized

    security - 安全存储和使用用户凭证测试环境的策略

    php - PHP 网站上的恶意软件,指的是 clck.ru

    apache - Apache Ambari:在现有集群中安装时,Datanode安装失败

    java - 如何获取OMElement值?

    php - 基于国家的重定向

    angular - 使用 MSAL.js 通过 Angular 在 Azure AD 中创建用户