私はしばらくの間、この問題に苦労してきました。分解してみましょう:
当社の Web サイトのほとんどをホストする apache2 サーバーがあります。各 Web サイトは個別の vhost です。この仮想ホストの 1 つは、社内の UI デザイナーが最新のドラフトとプロジェクトを社内ユーザーとサードパーティ クライアントの両方に提示するために使用されます。現時点では、この VHost は、次のディレクティブを使用して Vhost 構成ファイルからパスワードで保護されています。
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
Allow from all
AuthUserFile /home/secure/passwords
AuthName "Username and password required"
AuthType Basic
Require valid-user
</Directory>
私が必要としているのは、特定の IP 範囲を意味する内部ユーザーがこの Web サイトを利用できるようにすることです (したがって、パスワード プロンプトは表示されません)。Allow from 192.168.xxx.xxx
上記の命令セットでオプションを使用しようとしました。ただし、これは内部 IP を通過させません (引き続きパスワードを要求します)。そこで、当社の外部 IP アドレス (「what's my IP Web サイト」で見つけることができます) を使用しようとしました。それも運が悪い。
したがって、最後の試みとして、明らかに別の ServerName を使用する 2 つ目の vhost を作成しました。また、構成ファイルで競合が発生しないようにするために、/var/www へのシンボリック リンクを作成し、それを www2 と呼びました。したがって、2 番目の vhost ファイルの Directory ディレクティブは次のようになります。
<Directory /var/www2/>
Options Indexes FollowSymLinks MultiViews
AllowOverride none
Order allow,deny
Allow from all
</Directory>
ただし、現在の構成では両方のホストでパスワード保護を取得しているため、構成ファイルは明らかに競合しています。最初の仮想ホストでこれを無効にすると、両方で無効になります。
どのディレクトリにも .htaccess ファイルがないため、構成を上書きするものはありません。apache2.conf ファイルには、Auth に関連する定義はありません。
詳細が必要かどうかわかりませんが、何でもお気軽にお尋ねください。
助けてくれてありがとう!
----編集----私の方法が正しいとは100%言えないことを明記したいだけです。2 つの VHost をセットアップすることは、私の問題の解決策ではないかもしれません。誰かがそれを行うためのより良い方法を考えているなら、私は提案を受け入れます. 要するに、1 つの Web サイトを内部ユーザーが利用できるようにし、それ以外のユーザーはパスワードで保護する必要があるということです。
乾杯!