Apache 仮想ホストとデフォルト サーバーが期待どおりに動作しない (間違ったコンテンツを提供する)
-
25-09-2019 - |
質問
私はこれを数時間試してきましたが、誰かに尋ねることがおそらく最善の方法であるという結論に達しました。
私はすぐに使用できる Apache をインストールしているので (mod_security と mod_python を追加しました)、/etc/httpd/conf/httpd.conf には触れていません。
多数のドメインがあり、すべて として実行されており、それぞれに独自の構成ファイルがあります。認識されないホスト名が最初の仮想ホストからのコンテンツを提供するという事実を除いて、それらはすべて期待どおりに動作しています(最初の仮想ホストからのコンテンツが提供されるため、これは予期される動作であると私は知っています)。
誰かが不明なホスト名を介してサーバーにアクセスした場合に提供されるデフォルトのコンテンツセットを設定したいのですが、そうすると、最初のサイトでもこのデフォルトのコンテンツが提供されることになりますが、これには理由が見つからないようです。
個々のサイトのすべての設定ファイルは /etc/httpd/conf.d/sites にあり (自動インクルードされないように)、ファイル (/etc/httpd/conf.d/sites) を通じてインクルードされます。 .conf) を作成しました。デフォルトのサーバーをセットアップする前に、その内容は次のとおりです。
Include conf.d/sites/*.conf
デフォルトのサーバーを動作させるために、これを次のように変更しました。
<VirtualHost _default_:80>
DocumentRoot /home/sites/DEFAULT
<Directory "/home/sites/DEFAULT">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Include conf.d/sites/*.conf
問題をもう一度繰り返します。 sites.conf の 2 番目のバージョンがアクティブな場合、最初の VirtualHost もこのコンテンツを提供します。残りは大丈夫です。すべてのサイトの構成ファイルは構文的に正しく、ServerName にタイプミスはありません。
(参考までに、問題のあるサイトの構成ファイルを含めました - /etc/httpd/conf.d/sites/DOMAIN.clintonmontague.co.uk.conf に保存されています)
<VirtualHost *:80>
DocumentRoot /home/sites/clintonmontague.co.uk/www
ServerName clintonmontague.co.uk
LogLevel emerg
CustomLog /home/sites/clintonmontague.co.uk/_logs/access_log "combined"
<Directory "/home/sites/clintonmontague.co.uk/www">
AllowOverride none
allow from all
Options +Indexes
</Directory>
</VirtualHost>
長すぎる質問ですみません!
他の情報:Apache 2.2、CentOS 5、MediaTemple (dv)
解決 2
参考までに - /etc/sysconfig/network が私の HOSTNAME を clintonmontague.co.uk (たまたまアルファベット順で最初のドメインでした) として報告したために問題が発生したようです。したがって、 デフォルト そのドメイン名が含まれていたため、デフォルトのコンテンツが提供されていました。
誰かが同様の問題を抱えている場合に備えて、回答を投稿しようと思いました:)
MediaTemple でこれを変更することはできません ((dv) が再起動されるたびに、この値はリセットされます)
デフォルトコンテンツのindex.phpにこの行を含めることで修正しました。
<?php
if ($_SERVER['SERVER_NAME'] == 'clintonmontague.co.uk' )
{
header ('Location: http://www.clintonmontague.co.uk/');
}
?>
他のヒント
、その後、これを試してみてください。 PHPコードの代わりに動作するはずServerAlias
ラインに注意してください。
<VirtualHost *:80>
DocumentRoot /home/sites/clintonmontague.co.uk/www
ServerName clintonmontague.co.uk
ServerAlias www.clintonmontague.co.uk
LogLevel emerg
CustomLog /home/sites/clintonmontague.co.uk/_logs/access_log "combined"
<Directory "/home/sites/clintonmontague.co.uk/www">
AllowOverride none
allow from all
Options +Indexes
</Directory>
</VirtualHost>