2012-08-22 3 views
2

동일한 (사용자 정의) 프레임 워크를 사용하여 하나의 서버/IP에서 8 개의 웹 사이트를 호스팅해야하는 프로젝트를 시작합니다.htaccess route multiple domains

내가해야 할 일은 각 사이트마다 별도의 앱 폴더를 사용하는 것입니다. 이 부분은 쉽지만 폴더 구조 만 복사하면됩니다. 문제가있는 부분은 .htaccess입니다.

- application 
    -controller 
    -view 
    -www 
    -css 
    -js 
    -img 

자, 어떻게해야하는 파일에 대한 요청을받을 설정 될 필요가 있다는 것입니다, 그리고 어떤 요청하지 않는 파일로 이동 :

는 각 응용 프로그램 폴더과 같이 설정 개별 응용 프로그램을위한 부트 스트랩 파일 ...이 부분은 일단 요청이 도착하면 웹 루트에 .htaccess 파일을 처리하기 때문에 쉽습니다.

기본 루트 폴더에있는 .htaccess을 사용하여 사용자가 방문한 도메인을 기반으로 이동할 응용 프로그램을 결정해야합니다. 로 이동하는 단 하나의 응용 프로그램 폴더가있을 때

내 htaccess로 리디렉션 섹션은 다음과 같습니다

RewriteEngine on 

RewriteCond  %{DOCUMENT_ROOT}/application/www%{REQUEST_URI} -d 
RewriteRule  ^(.*[^/])$ /$1/     [R=301,L] 

RewriteRule ^$ application/www/  [L] 
RewriteRule (.*) application/www/$1  [L] 

기본적으로, 나는 같은 프레임 워크를 사용하여 여러 도메인이를 복제 할 필요가있다.

응용 프로그램 폴더의 이름이 도메인 이름과 동일하면 도움이됩니다.

답변

1

이 시도 : 마지막 규칙 위

RewriteEngine On 

RewriteCond %{DOCUMENT_ROOT}/%{HTTP_HOST}/www%{REQUEST_URI} -d 
RewriteRule ^(.*[^/])$ /$/ [R=301,L] 

RewriteRule ^$ application/www/ [L] 

RewriteCond %{DOCUMENT_ROOT}/%{HTTP_HOST}/www%{REQUEST_URI} -d [OR] 
RewriteCond %{DOCUMENT_ROOT}/%{HTTP_HOST}/www%{REQUEST_URI} -f 
RewriteRule ^(.*)$ application/www/$1 [L] 

2 개 개의 조건은 그렇지 않으면 404 메시지가 폴더 구조를 노출 것, 요청 된 리소스가 실제로 응용 프로그램의 WWW 폴더에 있는지 확인합니다. 이 같은

당신은 (이러한 이상) 몇 가지 규칙과 호스트 이름을 정규화해야 할 수도 있습니다

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

www를 삭제하는 www가 또는

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

시작하는 호스트 이름을 강제로 호스트 이름에서.

+0

나는 빠른 답변을 원하며, 두통을 덜어 주었다. 또한, 두 번째'.htaccess' 파일의 실제 필요성을 제거했기 때문에 내 게시물을 +2 할 수있었습니다. 마지막 규칙의 두 가지 조건은 각 응용 프로그램의 개별 .htaccess 파일에있는 것입니다! –