2

私はこれを数時間いじっており、誰かに尋ねることがおそらく最善の方法であるという結論に達しました!

私はかなりすぐに使える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 もこのコンテンツを提供します。残りは大丈夫です。すべてのサイトの構成ファイルは構文的に正しく、ServerNames にタイプミスはありません。

(参考までに、問題のあるサイトの構成ファイルを含めました-/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)

4

2 に答える 2

4

あなたの答えが正しい場合は、これを試してください。ServerAliasPHP コードの代わりに動作するはずの行に注意してください。

<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>
于 2013-01-26T16:36:00.683 に答える
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/');
}
?>
于 2010-03-06T16:13:51.930 に答える