Dot-Htaccess

.htaccess 簡單 <Files> 不起作用

  • May 26, 2020

設想

我只是試圖通過 .htaccess 密碼文件夾允許一個 php 文件。

迄今為止的嘗試

  • 我的特殊文件.php
  • 子文件夾/my-special-file.php
  • ./subfolder/my-special-file.php
  • 嘗試在子文件夾中使用 .htaccess

問題

我錯過了什麼?我知道我以前做過這樣的小事情,但我只是沒有看到它..

.htaccess 文件

AuthUserFile /some/folder/.htpasswd
AuthType Basic
AuthName "Password Required"
Require user personA personB
Order Deny,Allow
Deny from All


#not working
&lt;Files "./subfolder/my-special-file.php"&gt;
   Allow from All
&lt;/Files&gt;

Satisfy Any

網頁 401

未經授權

此伺服器無法驗證您是否有權訪問所請求的文件。要麼您提供了錯誤的憑據(例如,錯誤的密碼),要麼您的瀏覽器不了解如何提供所需的憑據。

Apache/2.4.7 (Ubuntu) 伺服器在 xx 埠 80

您正在使用的 Apache 2.4 中的訪問控制已更改,這些更改可能在從 2.2 升級到 2.4中得到最好的解釋。簡而言之,來自mod_access_compat

兼容性:在 Apache HTTP Server 2.3 中作為與以前版本的 Apache httpd 2.x 的兼容性模組可用。此模組提供的指令已被新的 authz 重構棄用。請參閱mod_authz_host

讓我們根據mod_authz_coremod_authz_host重構您的配置:

&lt;Directory "/var/www/somefolder"&gt;
   AuthType Basic
   AuthName "Password Required"
   AuthUserFile "/some/folder/.htpasswd"
   Require user personA personB

   &lt;Files "my-special-file.php"&gt;
       Require all granted
   &lt;/Files&gt;
&lt;/Directory&gt;
  • &lt;Directory&gt;上下文可以替換為,.htaccess不推薦

  • &lt;Files "my-special-file.php"&gt;所有子文件夾繼承,即

    • 這允許訪問my-special-file.phpsubfolder/my-special-file.php
    • 如果您只想將此應用於 ,則subfolder/my-special-file.php需要:
    &lt;Directory "/var/www/somefolder"&gt;
        AuthType Basic
        AuthName "Password Required"
        AuthUserFile "/path/to/.htpasswd"
        Require user personA personB
    
        &lt;Directory "/var/www/somefolder/subfolder"&gt;
            &lt;Files "my-special-file.php"&gt;
                Require all granted
            &lt;/Files&gt;
        &lt;/Directory&gt;
    &lt;/Directory&gt;
    

引用自:https://serverfault.com/questions/1018662