Apache-2.2

.htaccess 不詢問密碼

  • June 10, 2018

我正在使用 Ubuntu 12.04 並嘗試在帶有 apache2 伺服器的頁面上使用 .htaccess。我的 .htaccess 文件如下所示:

AuthType Basic
AuthName "Password Required"
AuthBasicProvider file
AuthUserFile /home/janeb/.htpasswd
require valid-user

/home/janeb/.htpasswd 文件是:

inb351:$apr1$Ya4tzYvr$KCs3eyK1O2/c7Q9zRcwn..

和 /etc/apache2/sites-available/default 文件是:

UserDir public_html
<Directory ~ "public_html/.*">
       Options Indexes FollowSymLinks MultiViews
       AllowOverride All
       Order allow,deny
       allow from all  
</Directory>

我重新啟動了apache。我試圖更改require valid-userrequire user inb351. 仍然沒有運氣。我也試過and AllowOverride。所以我不知道還能做什麼,是的,我嘗試過的每一步都重新啟動了 apache。AuthConfig``AuthConfig Indexes

編輯:確切的預設文件是:

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
   Options FollowSymLinks
   AllowOverride None
</Directory>
<Directory /var/www/>
   Options Indexes FollowSymLinks MultiViews
   AllowOverride None
   Order allow,deny
   allow from all
</Directory>
   UserDir disabled vmuser
   UserDir public_html
<Directory ~ "public_html/*">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride All
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
   AllowOverride None
   Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
   Order allow,deny
   Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
   Options Indexes MultiViews FollowSymLinks
   AllowOverride None
   Order deny,allow
   Deny from all
   Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

我懷疑apache使用者沒有閱讀能力/home/janeb/.htpasswd。檢查 Apache 的錯誤日誌。

這是我在提供的配置中看到的唯一錯誤,但這可能不是唯一的問題;請提供您的完整虛擬主機配置。我還建議您將身份驗證配置從.htaccess文件中移出 - 它沒有理由存在。

編輯

.htaccess未應用文件的原因AllowOverride All是未將其應用於文件所在的路徑.htaccess

.htaccess文件需要與<Directory>塊同時應用 - 如果AllowOverride在塊中指定,<Directory ~ ...>那麼它會 .htaccess應該應用之後發生。由於這不起作用,文件特別警告它

AllowOverride 僅在<Directory>未指定正則表達式的節中有效,在<Location><DirectoryMatch>節中無效<Files>

在您的配置中添加一個新塊以允許.htaccess使用您的文件:

<Directory /home>
   AllowOverride All
</Directory>

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