2011-08-04 3 views
2

ファイルシステム内の異なるディレクトリにマップするために(wwwの代わりに)別の接頭辞を許可するようにApacheを設定できますか?私はこれらがこれらのURLにマップしたいんでしょうApache - 接頭辞を別のディレクトリにマップする方法

/home/me/test/web : Test Environment 
    /home/production/web : Production Environment 

test.mysite.com -> /home/me/test/web 
    prod.mysite.com -> /home/production/web 

しかし、私が試したものをたとえば...

は、私は私のウェブサーバ上の2つの異なる環境を持っていますVirtualHostsは動作しました:

NameVirtualHost *:80 

    <VirtualHost *:80> 
     ServerName test.mysite.com 
     ** Some SetEnvs ** 
    </VirtualHost> 

    <VirtualHost *:80> 
     ServerName prod.mysite.com 
     ** Different SetEnvs ** 
    </VirtualHost> 

これは、次のエラーをスローします。

[warn] _default_ VirtualHost overlap on port 80, the first has precedence 

このような設定はApacheでも可能ですか、何か間違っていますか?また、virtualhostsファイルを使った簡単な書き換えも、おそらくどちらにも当てはまらないでしょう。それはまっすぐなディレクトリのもののために働くが、私はVirtualHostセクション内でできるようなSetEnvディレクティブを使うことはできない。

NameVirtualHost *:80 

答えて

1

:ない .であるべき。ただし、.confファイルでは正しいです。
+0

おかげで、それを上にコピーするときにそれをタイプミス: – grobolom

+0

@grobolomこの場合、いくつかのディレクティブが2回宣言されています:1) 'NameVirtualHost *:80'は一度だけ宣言されています2)' '宣言をすべてチェックしてください - 同じ' ServerName'を宣言しているかもしれません二度。 – LazyOne

+1

@grobolomまた、このコマンドを実行してみてください(あなたが持っているディストリビューションに依存します) 'apache2 -S'または' httpd -S'を実行して出力を確認してください - 重複した ''の位置を得るかもしれません** IF **あなたの警告メッセージの場合です。 – LazyOne

関連する問題