Reverse-Proxy
Apache 反向代理:在特定 URL 上放置 htaccess 類型密碼
我有一個管理多個域的 Apache2 反向代理。
在裡面我有一個這樣配置的虛擬主機:
<VirtualHost *:443> RewriteEngine On ServerName www.example.com DocumentRoot /var/lib/letsencrypt/http_challenges ProxyPass / http://10.55.0.180/plugin/main/ ProxyPassReverse / http://10.55.0.180/plugin/main/ ProxyRequests Off ProxyPreserveHost On <Directory /var/lib/letsencrypt/http_challenges> Allow from All </Directory> <Location /Cours/index.php/Stats/> AuthType Basic AuthName "Wrapper auth" AuthBasicProvider file AuthUserFile "/etc/.htpasswd" Require valid-user </Location>
這樣做的目的是訪問的使用者
https://www.example.com
可以在不提示輸入密碼的情況下執行此操作,而訪問的https://www.example.com/Cours/index.php/Stats/
使用者在未經過身份驗證的情況下無法執行此操作。當然,如果我在那裡,這種方法是行不通的。
該
/etc/.htpasswd
文件存在且配置良好,但人們https://www.example.com/Cours/index.php/Stats/
無需輸入密碼即可訪問。
這比我想像的要容易。我的問題是位置末尾的斜杠,因為它會在瀏覽器中 URL 的末尾自動刪除。所以這是工作配置:
<VirtualHost *:443> RewriteEngine On ServerName www.example.com DocumentRoot /var/lib/letsencrypt/http_challenges ProxyPass / http://10.55.0.180/plugin/main/ ProxyPassReverse / http://10.55.0.180/plugin/main/ ProxyRequests Off ProxyPreserveHost On <Directory /var/lib/letsencrypt/http_challenges> Allow from All </Directory> <Location /Cours/index.php/Stats> AuthType Basic AuthName "Wrapper auth" AuthBasicProvider file AuthUserFile "/etc/.htpasswd" Require valid-user </Location>