Apache 가상 호스트가 https 하위 도메인에서 하위 디렉터리로 리디렉션됩니다.

Apache 가상 호스트가 https 하위 도메인에서 하위 디렉터리로 리디렉션됩니다.

다음으로 오는 요청을 어떻게 리디렉션하나요?https://blog.example.com에게https://example.com/blog?

다시 쓰기 모드를 사용하지 않을 때 아파치 문서를 읽고 간단한 리디렉션을 시도했습니다.

Redirect https://blog.example.com https://example.com/blog

그런데 제가 방문했을 때https://blog.example.com, 리디렉션되지 않습니다. 인증서에만 오류가 있다고 말합니다. HTTPS 하위 도메인을 리디렉션할 가능성이 있나요? 다음과 같은 것을 사용하면 HTTP에서 제대로 작동합니다.

<VirtualHost *:80>
    ServerName blog.example.com
    Redirect / https://example.com/blog/
</VirtualHost>

다음과 같은 조건:

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

HTTPS가 아닌 HTTP를 사용할 때만 작동합니다...

감사합니다.

답변1

구성은 VirtualHost *:80즉, http포트에 적용됩니다. 포트는 https443입니다. 해당 구성을 찾아서 거기에도 리디렉션을 적용하십시오.

답변2

나는 mod_alias를 사용할 수 있다고 생각합니다.

blog.example.com 가상 호스트에서:

RedirectMatch (.*)$ / https://example.com/blog/$1

https://httpd.apache.org/docs/2.4/mod/mod_alias.html

답변3

브라우저가 인증서 오류를 표시하면 트랜잭션이 중단됩니다.~ 전에리디렉션이 실행됩니다. HSTS를 사용하지 않는 경우 오류를 클릭하여 이를 확인할 수 있으며 리디렉션은 정상적으로 계속됩니다. 오류 자체는 여러 가지 이유로 발생할 수 있으며 브라우저는 어떤 것이 적용되는지 알려 주지만 가장 가능성이 높은 것은 인증서가 (또는 와일드카드에 대한 ) example.comSAN 항목에만 유효하고 해당 항목이 없다는 것 입니다 . 이 문제를 해결하려면 이 추가 이름을 포함하도록 인증서를 재생성하거나 추가 인증서를 얻고 서버 구성을 조정하여 하위 도메인에 대해 이 인증서를 제공할 수 있습니다. 두 경우 모두 선택한 인증서 공급자(CA)가 가능해야 합니다. 당신을 돕기 위해.blog.example.com*.example.com

관련 정보