2016-07-11 19 views
0

私は2つのwordpressサイトを設定しています。このシナリオでは、var/www/domain/usフォルダとvar/www/domain/euフォルダに2つのWordpressインストールが存在します。ユーザーは:domain.com/usまたはdomain.com/euからサイトにアクセスします。仮想ホストのサブサイトapache 2.4

現在、仮想ホストの設定は、次のとおりです。 :(私は今のところ唯一のIPアドレスので、添付の実際のドメイン名を持っていない)

<VirtualHost *:80> 
ServerName [IP-address] 
ServerAlias [IP-address] 
DocumentRoot /var/www/domain/us 
ErrorLog /var/www/html/domain.com/logs/error.log 
CustomLog /var/www/html/domain.com/logs/access.log combined 
</VirtualHost> 


<VirtualHost *:80> 
ServerName [IP-address]/us 
DocumentRoot /var/www/domain/us 
ServerAlias [IP-address] 
ErrorLog /var/www/html/domain.com/logs/error.log 
CustomLog /var/www/html/domain.com/logs/access.log combined 
</VirtualHost> 

<VirtualHost *:80> 
ServerName [IP-address]/eu 
DocumentRoot /var/www/domain/eu 
ServerAlias [IP-address] 
ErrorLog /var/www/html/domain.com/logs/error.log 
CustomLog /var/www/html/domain.com/logs/access.log combined 
</VirtualHost> 

私は、プライマリ仮想ホストとIPアドレスにアクセスすることができますが、最後の2つのIP /米国およびIP/euはページが見つかりませんでした。

私は間違っていますか?

答えて

0

ServerNameはパスをホスト名の一部として解釈します。サーバー名には、要求スキーム、ホスト名およびポートが含まれていても、パスは含まれていない可能性があります。したがって、最初の仮想ホストだけが有効です。

あなたはApache 2.4を使用しているため、条件付きディレクティブを使用して問題を解決できます。最初の仮想ホストで次の行を追加し、残りの2つを削除します。

<VirtualHost *:80> 
ServerName [IP-address] 
ServerAlias [IP-address] 
<If "%{REQUEST_URI} =~ m#^/eu.*$#"> 
    DocumentRoot /var/www/domain/eu 
</If> 
<Else> 
    DocumentRoot /var/www/domain/us 
</Else> 
ErrorLog /var/www/html/domain.com/logs/error.log 
CustomLog /var/www/html/domain.com/logs/access.log combined 
</VirtualHost> 
+0

ありがとうございます。 Apacheサービスを再起動するとエラーになる:AH00526:/etc/apache2/sites-enabled/domain.com.confの21行目に構文エラーがあります。 DocumentRootは許可されていません - アイデアはありますか? – maggie87

関連する問題