Apache가 동일한 하위 도메인으로 리디렉션됩니까?

Apache가 동일한 하위 도메인으로 리디렉션됩니까?

Tomcat의 8080 포트에서 실행되는 응용 프로그램이 있습니다. 그리고 이 VirtualHost 구성에서는 잘 작동합니다.

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html
     ServerName www.subdomain.domain.com
    ServerAlias www.subdomain.domain.com *.subdomain.domain.com
     ErrorLog /var/log/apache2/subdomain.d/subdomain_er.log
     CustomLog /var/log/apache2/subdomain.d/subdomain_requests.log custom

     Redirect / https://subdomain.domain.es

</VirtualHost>

이제 "하위 도메인"을 필터링하고 하위 도메인 이름에 따라 다른 HTML과 다른 스타일 시트를 로드하는 새 서버와 새 응용 프로그램이 있습니다(하위 도메인은 자체 스타일을 지정하는 다른 회사에 의해 생성됩니다).

https를 사용하여 하위 도메인 이름을 얻고 동일한 하위 도메인으로 리디렉션할 수 있습니까? ServerName *.domain.com과 같은 것이며 하위 도메인(*.domain.com)이 무엇이든 리디렉션됩니까? 변수에 저장하시겠습니까?

매크로를 진행했지만 매크로에 전달될 매개변수가 필요합니다. 요청에 어떤 매개변수를 입력할지 모르겠습니다. 회사1일 수도 있고 회사2일 수도 있습니다...

답변1

당신은 사용할 수 있습니다고쳐 쓰기아파치 모듈.

먼저 다음 명령을 사용하여 Ubuntu에서 활성화되어 있는지 확인하십시오.

sudo a2enmod rewrite

가상 호스트에 다음 구성을 추가하면 의 모든 하위 도메인이 domain.com의 하위 도메인으로 리디렉션됩니다 domain.es.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$
RewriteRule ^/(.*)$ https://%1.domain.es/$1 [R=301,L]

설명:

  1. RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$

    이 조건은 호스트가 *.domain.com 패턴과 일치하는지 조사하고 일치된 항목 (.+)(예: 하위 도메인)을 저장합니다. 예를 들어 패턴은 domain.com일치하지 않지만 다음 패턴은 일치합니다.

    • dan.domain.com
    • www.dan.domain.com
  2. RewriteRule ^/(.*)$ https://%1.domain.es/$1 [R=301,L]

    이 규칙은 Apache가 domain.es. %1이전 RewriteCond지시어와 일치하는 값을 포함합니다. while $1에는 이 지시어와 일치하는 값이 포함되어 있으므로 경로를 그대로 유지하고 도메인 루트로 리디렉션되지 않을 수 있습니다.

예:

  • dan.domain.com로 리디렉션됩니다https://dan.domain.es
  • www.dan.domain.com로 리디렉션됩니다https://www.dan.domain.es
  • dan.domain.com/example로 리디렉션됩니다https://dan.domain.es/example
  • www.dan.domain.com/example로 리디렉션됩니다https://www.dan.domain.es/example

관련 정보