mod_vhost_alias VirtualDocumentRoot 많은 도메인

mod_vhost_alias VirtualDocumentRoot 많은 도메인

제가 이 문제를 겪은 첫 번째 사람은 아닐 것이라고 확신하지만, 평생 동안 답을 찾을 수 없습니다. 무엇을 검색해야 할지 모르기 때문일 수도 있습니다.

Ubuntu 서버에서 많은 클라이언트 웹사이트를 호스팅해야 합니다. 모두 잘 작동하지만 동적 가상 호스트를 설정하여 서버에서 WordPress 사이트를 만드는 프로세스를 자동화하고 싶습니다. 모듈이 작동하고 있어 만족스럽습니다. 그러나 도메인 과 도메인과 mod_vhost_alias관련된 문제가 발생했습니다..com.co.uk.com.auVirtualDocumentRoot

와 같은 도메인의 경우 모든 요청이 와 같은 디렉터리를 가리키고 example.com싶고 , 같은 도메인의 경우 모든 요청이 이라는 디렉터리를 가리키고 싶습니다 .www.exapmple.comexample.com/var/webroot/example.comexample.co.ukwww.example.co.ukexample.co.uk/var/webroot/example.co.uk

지금 가지고 있는 VDR은 이렇습니다...

VirtualDocumentRoot /var/webroot/%-2.0.%-1.0

마지막 부분과 마지막 부분에서 두 번째 부분을 잡습니다. 이것은 훌륭하게 작동 example.com하지만 example.co.uk디렉토리를 찾고 있는 경우에는 /var/webroot/co.uk이상적이지 않습니다!

이 문제를 해결할 방법이 있나요? 사용해야 하나요 mod_rewrite? 그렇다면 어떻게 해야 하나요?

답변1

이는 매우 구체적인(그리고 잠재적으로 취약한) 링크를 사용하는 대신 심볼릭 링크를 분리하는 경우입니다 RewriteRule.

를 사용한 VirtualDocumentRoot /var/webroot/%0다음 의 실제 디렉터리를 가리키는 /var/webroot/심볼릭 링크를 만듭니다 . 이는 어떤 이유로든 다른 콘텐츠가 있어야 하는 사이트 가 있거나 .www.example.comexample.comwwwaaa.example.comexample.com

마음에 들지 않으면 실제로 다음을 사용할 수 있습니다 mod_rewrite.

DocumentRoot /var/webroot
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteRule ^/(.*)$ /%2/$1

그러면 항상 에서 도메인 이름을 찾고 /var/webroot, www찾기 전에 도메인 이름이 있으면 앞 부분을 뜯어냅니다.

www또는 두 도메인 모두에 동일한 콘텐츠를 제공하는 대신 모든 요청에 ​​대해 제거(또는 추가)하도록 리디렉션할 수도 있습니다 .

관련 정보