Apache의 000-default.conf - 이상한 동작

Apache의 000-default.conf - 이상한 동작

example.comwww에서 www가 아닌 ​​www에서 www로의 리디렉션을 구현하려고 합니다 www.example.com.

내 거sites-available/example.com.conf파일은 다음과 같습니다.

<VirtualHost *:80 *:443>
        ServerName www.example.com
        ServerAdmin [email protected]

        DocumentRoot /var/www/example.com/public_html

        ErrorLog /var/www/example.com/logs/error.log
        CustomLog /var/www/example.com/logs/access.log combined
</VirtualHost>

<VirtualHost *:80>
        ServerName example.com
        Redirect permanent / http://www.example.com
</VirtualHost>
<VirtualHost *:443>
        ServerName example.com
        Redirect permanent / https://www.example.com
</VirtualHost>

내 거sites-available/000-default.conf파일은 다음과 같습니다.

<VirtualHost *:80>
        ServerAdmin [email protected]
        DocumentRoot /var/www/default/public_html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

이제 ..요청하면 http://www.example.com요청대로 응답합니다. 그러나 요청되면 http://example.com의 구성을 사용하여 요청을 렌더링합니다 000-default.conf.

000-default.conf연결을 해제하면 sites-enabled/문제가 해결되지만 제가 원하는 것은 아닙니다(알 수 없는 요청에 대한 기본 동작을 유지하고 싶습니다).

여기서 문제가 무엇입니까? 구성이 000-default.conf리디렉션을 재정의하는 이유는 무엇입니까?

답변1

domain.com 가상 호스트는 www.example.com이름으로만 지정되므로 Apache는성냥지정되었을 때 www.

ServerName www.example.com

대신 다음 구성을 사용할 수 있습니다.

ServerName example.com
ServerAlias www.example.com

편집하다:내 생각에는 귀하의 경우 Apache가 다음과 유사한 순서로 가상 호스트를 일치시키려고 시도할 것입니다.

www.example.com > default > example.com (80) > example.com (443)

호스트는 포트 80에서 전송된 모든 요청과 일치 하므로 default다른 두 요청은 테스트되지 않습니다. 이는 기본값을 제거하면 구성이 제대로 작동하는 이유도 설명합니다.

나는 Apache의 가상 호스트 일치에 대해 잘 알지 못하지만 이에 대한 자세한 정보는 다음에서 찾을 수 있습니다.이 페이지.

관련 정보