아파치에서 여러 문서 루트를 정의하는 방법

아파치에서 여러 문서 루트를 정의하는 방법

"url(/img/myimj.jpg)"와 같은 PHP 파일의 모든 링크에 대해 루트 상대 경로를 사용합니다.

Godaddy 호스트 서버에서는 정상적으로 작동합니다.

하지만 로컬 호스트에서 실행하고 싶습니다. (우분투 9, 아파치 2, PHP 5)

예를 들어 내 사이트는 var/www/siteone에 저장되어 있고 다른 사이트는 var/www/sitetwo에 저장되어 있습니다.

루트 디렉터리는 "var/www"로 설정됩니다.

이제 문제는 href="/"가 var/www/siteone이 아니라 var/www/에 연결된다는 것입니다.

여러 사이트에 대해 서로 다른 문서 루트를 정의하는 방법이 있습니까?

저는 웹 개발의 초보자일 뿐이고 가상 호스트가 이를 할 수 있는지 확실하지 않습니다.

누군가 설명해줄 수 있나요?

답변해주셔서 감사합니다.

/etc/apache2/sites-available/default 파일에 새 vitualhost를 추가해야 합니다.

하지만 여전히 혼란스럽습니다. localhost에 대해 어떻게 해야 할까요? 기본 IP 및 포트는 항상 127.0.0.1:80입니다.

답변1

<VirtualHost>섹션에는 고유한 DocumentRoot지시어가 있을 수 있습니다.

답변2

저는 개인적으로 VirtualDocumentRoot를 많이 사용합니다.
http://httpd.apache.org/docs/2.0/mod/mod_vhost_alias.html#virtualdocumentroot

이 지시어를 사용하면 다음과 같은 작업을 수행할 수 있습니다.

VirtualDocumentRoot /var/www/%-2/%-3/

%-2는 "오른쪽에서 두 번째 항목"이므로 exemple.com의 예입니다.
%-3은 오른쪽에서 세 번째 항목이므로 foo.exemple.com의 foo입니다.

그런 다음 호스트 이름과 일치하는 폴더를 만들어야 합니다.
localhost/는 다음과 같습니다.

/var/www/localhost/_/

값이 없는 _에 주목하세요(나는 항상 _ -> www와 같은 심볼릭 링크를 만듭니다)

따라서
www.site1.com은 /var/www/site1/www/가 됩니다.
www.site2.com은 /var/www/site2/www/가 됩니다.
localhost는 /var/www/localhost/_/가 됩니다.

그런 다음 심볼릭 링크를 즐겨보세요 :-)

관련 정보