apache2 IP 리디렉션이 하위 도메인 리디렉션과 충돌합니다.

apache2 IP 리디렉션이 하위 도메인 리디렉션과 충돌합니다.

그래서 내 웹사이트를 방문하면 example.com의도한 대로 작동합니다. abc.example.com로 리디렉션되도록 리디렉션을 성공적으로 구성했습니다 example.com/abc.

구성 파일은 다음과 같습니다 abc.example.com.conf.

<VirtualHost *:80>
    ServerName abc.example.com
    RedirectPermanent / https://example.com/abc
</VirtualHost>

내 문제:

브라우저에 원시 IP 주소를 입력하여 내 웹사이트를 방문하면 example.com/abc원하는 동작이 아닌 리디렉션도 발생합니다. 브라우저의 원시 IP는 나를 다음 위치로 이동시켜야 합니다.example.com

파일 은 다음과 같습니다 example.com.conf.

<VirtualHost *:80>
    ServerName example.com
    ServerAlias example.com
    DocumentRoot /var/www/example.com/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

내 IP 주소를 입력하면 example.com대신 제공되도록 하려면 무엇을 변경해야 합니까 abc.example.com?

답변1

이는 가상 호스트 중 하나가 기본값으로 작동하기 때문입니다. ServerName서버 수준(즉, VirtualHost블록에 없음)이 내부의 것과 일치 하면 VirtualHost이것이 기본값이 됩니다. 아무것도 설정되지 않은 경우 일반적으로 첫 번째 가상 호스트가 됩니다.

all-vhost 구성을 사용한다고 가정하면 대답은 vhost 블록 외부에 ServerName example.com(및 해당 )을 설정하는 것입니다.Listen

참조:https://httpd.apache.org/docs/2.4/vhosts/name-based.html

메인 호스트가 떠난다

기존 요청과 일치하지 않는 모든 요청은 호스트 이름이나 ServerName에 관계없이 전역 서버 구성에 의해 처리됩니다.

기존 서버에 이름 기반 가상 호스트를 추가하고 가상 호스트 인수가 기존 IP 및 포트 조합과 일치하면 이제 요청이 명시적인 가상 호스트에 의해 처리됩니다. 이 경우 일반적으로 기본 서버와 일치하는 ServerName을 사용하여 기본 가상 호스트를 만드는 것이 좋습니다. 동일한 인터페이스 및 포트에 있지만 별도의 구성이 필요한 새 도메인을 후속(기본값이 아닌) 가상 호스트로 추가할 수 있습니다.

관련 정보