그래서 내 웹사이트를 방문하면 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을 사용하여 기본 가상 호스트를 만드는 것이 좋습니다. 동일한 인터페이스 및 포트에 있지만 별도의 구성이 필요한 새 도메인을 후속(기본값이 아닌) 가상 호스트로 추가할 수 있습니다.