2009-03-11 7 views
5

나는 다음 시스템을 달성하기위한 해결책을 찾기 위해 잠시 동안 찾고있었습니다.하나의 도메인에서 여러 웹 사이트 관리

도메인 A에 PHP 시스템을 구축하고 싶습니다. 이 도메인에서는 관리자가 새 웹 사이트를 만들 수 있습니다. 이 웹 사이트는 모든 텍스트가 데이터베이스에 저장되어 있습니다. 이것, 나는 어떻게하는지 안다.

그러나 도메인 B로 유입 된 방문자가 보이지 않게 domainA.com/gateway.php?refdomain=domainB & page = xxx 또는 이와 유사한 것으로 리디렉션 될 수있게하고 싶습니다. .htaccess로 수행해야하는 모호한 생각이 있지만 가장 쉬운 방법으로이 작업을 수행 할 수있는 방법을 모릅니다. 예를 들어 domainB에 POST 또는 GET 요청이있는 경우이 작업이 계속 이루어져야합니다. http://www.domainB.com/test.gif에 링크 된 이미지도 www.domain.com에서 보이지 않게로드해야합니다.

또한이 기능을 허용하는 일부 CMS 시스템 (예 : drupal)이 있음을 알고 있습니다. 따라서 가능한 방법은 모르겠습니다. 당신은 드루팔 같은 CMS를 사용하는 경우

가 올바른 방향으로 날 지점 수있는 조언을 주셔서 감사합니다, 종류와 관련, 자리

답변

0

기본적으로 모든 도메인을 동일한 디렉토리로 지정하고 (아마도 vhosts에서 와일드 카드를 사용) urlrewrite을 설정해야합니다. 예를 들어 this question을보고, .htaccess 파일 또는 Apache 구성에있을 수 있습니다.

들어오는 모든 요청은 동일한 gateway.php로 이동하며 $_SERVER['REDIRECT_QUERY_STRING'], $_SERVER['REQUEST_URI'] 및 $ _SERVER['SERVER_NAME']을 사용하여 현재 도메인과 요청을 추출 할 수 있습니다. $_SERVER을 참조하십시오. 그런 다음 gateway.php에서 올바른 파일을 보낼 수 있습니다.

RewriteCond %{HTTP_HOST} . 
RewriteCond %{HTTP_HOST} !^www\.domainA\.com 
RewriteRule (.*) http://www.domainA.com/gateway.php?realpath=$1 [L,QSA] 

그런 다음 parse_url를 사용하여 게이트웨이 스크립트에서 "realpath"을 구문 분석하고 적절한 조치를 취할 수 :

+0

이것은 브라우저의 주소 표시 줄에있는 URL을 변경하지 않으며 사용자에게 투명합니다. – lpfavreau

0

를 사용할 수 있습니다, 당신은해야 포털 별명을 사용하여 이들을 지정할 수 있어야합니다. 별칭을 사용하면 다른 도메인을 지정하여 다른 "사이트"를 가리킬 수 있습니다.

+0

나는 CMS를 사용하지 않으려 고합니다. –

2

두 컴퓨터를 같은 컴퓨터에 호스팅하고 있습니까? 그렇다면, Apache에서 VirtualHosts과 같은 것이 이것을 해결할 수 있습니다.

mod_aliasmod_rewrite 또한 다소 유용 할 수 있습니다.

+0

Apache VirtualHost에는 ProxyPass 및 ProxyPAssReverse와 같은 기능이 있습니다.이 기능을 사용하면 Apache처럼 라우터처럼 작동하는 여러 VirtualHost를 정의 할 수 있습니다. 확실히 그것이 정적 도메인에서 작동하는지 확실하지는 않습니다 질문에 언급 된 도메인을 "생성"할 수 있는지 확실하지 않습니다 – Sathish

+0

글쎄, 어쨌든 도메인을 "생성"할 수는 없습니다 ... 등록을해야합니다. 등록의 일부로 domainA와 동일한 IP를 가리 키십시오. 가상 호스트를 올바르게 구성하면 VirtualHost가 나머지를 처리합니다. – rmeador

+0

이 제안을 해주셔서 감사합니다. 그러나 Virtualhosts를 사용하면 해당 웹 사이트의 각 ftp 계정에 파일을 복사해야합니다. 내 목표는 여러 사이트 (도메인)를 운영하고 파일로 하나의 계정 만 유지하는 것입니다. 모든 데이터는 파일이 아닌 데이터베이스에 저장됩니다. – Digits

0

OK, 여기 정말 간단한 예입니다.

원하는 경우 이미지 등에 대해 별도의 재 작성 규칙을 적용 할 수 있습니다.

+0

이러한 유형의 다시 쓰기 규칙을 사용하면 실제로 사용자 브라우저의 주소가 변경됩니까? 301 리디렉션을 수행합니까? 그건 바람직하지 않다고 생각합니다. 나는 그것이 서버 내부에서 모든 것을 처리하기를 희망한다. 제발, 나는 아주 궁금합니다. –

+0

나는 이것이 작동 할 수 있다고 생각한다! 비슷한 것을 사용했지만 도메인 전체에서 사용할 수 있다는 것을 깨닫지 못했습니다. 나는 이것을 분명히 시도 할 것이다. 고맙습니다! – Digits

+0

@Josh - no, 301 리다이렉트를하지 않습니다 (글쎄, 원한다면 할 수 있겠지만, 쓰지는 않을 것입니다). 엄격한 내부 리디렉션입니다. 브라우저는 새로운 URL을 보지 못합니다. –

관련 문제