2016-07-11 3 views
0

나는 2 개의 WordPress 사이트를 만들고있다. 시나리오는 두 개의 Wordpress 설치가 var/www/domain/us 및 var/www/domain/eu 폴더에 있다는 것입니다. domain.com에서 사이트에 액세스 할 때 domain.com/us가 기본 옵션이어야합니다. 사용자는 domain.com/us 또는 domain.com/eu를 통해 사이트에 액세스합니다.가상 호스트 하위 사이트 아파치 2.4

지금 바로 가상 호스트에 대한 설정은 다음과 같습니다. :

<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 주소를 액세스 할 수 있습니다 (I 그래서 유일한 IP 주소 지금까지 실제 도메인 이름이 부착되어 있지 않음),하지만 마지막 두 IP/우리와 IP/eu가 페이지를 찾을 수 없습니다.

내가 뭘 잘못하고 있니?

답변

0

ServerName은 경로를 호스트 이름의 일부로 해석합니다. 서버 이름에는 요청 구성표, 호스트 이름 및 포트가 포함될 수 있지만 경로는 포함될 수 없습니다. 따라서 첫 번째 가상 호스트 만 유효합니다.

Apache 2.4를 사용 중이므로 조건부 지시문을 사용하여 문제를 해결할 수 있습니다. 첫 번째 가상 호스트에서 다음을 추가하고 다른 두 개를 제거하십시오.

<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

답을 고맙습니다. 이제 아파치 서비스를 다시 시작하면 오류가 발생합니다. AH00526 : /etc/apache2/sites-enabled/domain.com.conf의 21 번째 줄에 구문 오류가 있습니다. DocumentRoot가 여기에 허용되지 않습니다. - 어떤 아이디어가 있습니까? – maggie87

관련 문제