
제가 이 문제를 겪은 첫 번째 사람은 아닐 것이라고 확신하지만, 평생 동안 답을 찾을 수 없습니다. 무엇을 검색해야 할지 모르기 때문일 수도 있습니다.
Ubuntu 서버에서 많은 클라이언트 웹사이트를 호스팅해야 합니다. 모두 잘 작동하지만 동적 가상 호스트를 설정하여 서버에서 WordPress 사이트를 만드는 프로세스를 자동화하고 싶습니다. 모듈이 작동하고 있어 만족스럽습니다. 그러나 도메인 과 도메인과 mod_vhost_alias
관련된 문제가 발생했습니다..com
.co.uk
.com.au
VirtualDocumentRoot
와 같은 도메인의 경우 모든 요청이 와 같은 디렉터리를 가리키고 example.com
싶고 , 같은 도메인의 경우 모든 요청이 이라는 디렉터리를 가리키고 싶습니다 .www.exapmple.com
example.com
/var/webroot/example.com
example.co.uk
www.example.co.uk
example.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.com
example.com
www
aaa.example.com
example.com
마음에 들지 않으면 실제로 다음을 사용할 수 있습니다 mod_rewrite
.
DocumentRoot /var/webroot
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteRule ^/(.*)$ /%2/$1
그러면 항상 에서 도메인 이름을 찾고 /var/webroot
, www
찾기 전에 도메인 이름이 있으면 앞 부분을 뜯어냅니다.
www
또는 두 도메인 모두에 동일한 콘텐츠를 제공하는 대신 모든 요청에 대해 제거(또는 추가)하도록 리디렉션할 수도 있습니다 .