特に、基本認証に関して構築されている内部ネットワークユーティリティサーバーに問題があります。
これで、次の構成で機能します。
root@P-UIDMON-02:/# /usr/local/scripts/LinuxVersion.sh
### Linux Standard Base Information
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 23.04
Release: 23.04
Codename: lunar
### Kernel Release
6.2.0-1015-azure
### Version of Apache2
Server version: Apache/2.4.55 (Ubuntu)
Server built: 2023-10-26T13:37:01
root@P-UIDMON-02:/# /usr/local/scripts/ApacheConfig.sh
### /etc/apache2/apache2.conf Config File
ServerName p-uidmon-02.acas.example.org
DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
### p-uidmon-02.conf Site Specific Config File
<Directory /var/www>
SSLRequireSSL
</Directory>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Redirect "/" "https://p-uidmon-02.acas.example.org/"
ServerName acas.example.org
ServerAlias p-uidmon-02.acas.example.org
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html>
Options -Indexes +FollowSymLinks
DirectoryIndex index.html
AllowOverride All
SSLRequireSSL
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/auth/.htpasswd
Require valid-user
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
<FilesMatch "\.(?:cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
ServerName acas.example.org
ServerAlias p-uidmon-02.acas.example.org
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
### /var/www/html/.htaccess File
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/auth/.htpasswd
Require valid-user
私の問題(理解できない)は、ファイルを.htaccess
特定のディレクトリに配置せずに仮想ホストで基本認証の詳細を使用できるようにしたいのですが、これを機能させる唯一の方法は.htaccess
ディレクトリ内のファイルです。仮想ホスト宣言を無視するのと同じです<Directory>XYZ</Directory>
。ファイルを削除しても.htaccess
問題は発生しません。ファイルが存在する場合、問題が発生します。
それが働いている間、それを取るとなぜそれがうまくいかないのか理解しようとすることは私を狂わせます.htaccess
。
私がここで何が間違っているのか説明してもらえますか?
答え1
私が見るには3つの主な問題があるようです。
htaccess
管理ポート443の代わりに、仮想ホスト管理ポート80に構成ステートメントを配置しました。- SSL ポート 443 ホストではなく、SSL ではなくポート 80 ホストに SSL 構成ステートメントを入れました。
- ポート 80 の仮想ホストはポート 443 の仮想ホストに即座にリダイレクトされるため、すべての構成ステートメントは (ほとんど) 無視されます。