ServerAlias ​​- 요청을 ServerName으로 리디렉션하고 요청의 하위 디렉터리를 준수하는 방법은 무엇입니까?

ServerAlias ​​- 요청을 ServerName으로 리디렉션하고 요청의 하위 디렉터리를 준수하는 방법은 무엇입니까?

example.com/*모든 트래픽을 다음으로 리디렉션하고 싶습니다 .www.example.com/*

나는 찾았다ServerAlias를 해당 ServerName으로 리디렉션하려면 어떻게 해야 합니까?문제의 주제를 처리하고 4개의 공감표로 답변에서 권장된 작업을 수행했습니다.

RewriteEngine On
RewriteCond %{HTTP_HOST}  !^www.example.com [nocase]
RewriteRule ^(.*)$        http://www.example.com$1 [last,redirect=301]

그러나 이 리디렉션 트래픽은 http://example.com/subdirectory다음으로 이동 http://www.example.com하고~ 아니다원하는 대로 http://www.example.com/subdirectory.

이 문제에 대한 약이 있나요?

답변1

이를 수행하는 올바른 방법은 새 가상 호스트를 생성하고 다음과 같이 리디렉션하는 것입니다.

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

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

관련 정보