【问题标题】:Remove .htpasswd protection from a subfolder从子文件夹中删除 .htpasswd 保护
【发布时间】:2015-11-23 05:53:59
【问题描述】:

我已经使用 .htpasswd 保护了我的根文件夹

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /home/a1199104/public_html/.htpasswd
Require user lamak

上面的代码拒绝访问我的整个站点/文件夹/子文件夹,我有一个子文件夹 public 它有一些公共文件。我希望任何人都可以在没有密码保护的情况下访问这个文件夹和文件,是这样吗可能吗?

【问题讨论】:

    标签: apache .htaccess .htpasswd


    【解决方案1】:

    您可以使用 SetEnv 和 Order 指令来移除密码保护:

    试试:

    #set env variable noauth if uri is "/public/files"
    SetEnvIf Request_URI ^/public/ noauth=1
    
    #auth
    AuthType Basic
    AuthName "Restricted Access"
    AuthUserFile /home/a1199104/public_html/.htpasswd
    Require user lamak
    
     #Here is where we allow/deny
    Order Deny,Allow
    Satisfy any
    Deny from all
    Require user lamak
    Allow from env=noauth
    

    【讨论】:

    • 感谢starkeen,它可以在example.com/public/anyfile.php工作,但是当我在没有斜杠的情况下访问example.com/public时,它问我为什么要登录?
    • 这是因为我们的 SetEnvIf 指令仅在匹配以 /public 开头的请求 uri 字符串时设置 env 变量 noauth / 。它无法将 uri 字符串与 /public 匹配。您可以从 setenvIf 模式 ^/public/ 中删除尾随 / 来解决它。
    【解决方案2】:

    创建一个名为public/.htaccess 的文件并放置以下代码:

    Order allow,deny
    allow from all
    Satisfy any
    

    【讨论】:

      猜你喜欢
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 2020-11-06
      • 1970-01-01
      相关资源
      最近更新 更多