2013-03-03 3 views
0

원하는 목표 : 기존 웹 사이트에서 새 웹 사이트를 구현해야합니다. 새 사이트는 '단계적'구현이어야하므로 'dev'및 'test'및 'site'의 하위 디렉토리가 만들어집니다. 세 개의 하위 디렉토리에는 서로 다른 사용자 계정과 데이터베이스가 사용된다는 사실을 제외하고는 동일한 PHP/MVC 구현이 포함되어 있습니다. 루트 디렉토리에있는 현재 사이트도 계속 작동해야합니다..htaccess가 하위 디렉토리의 PHP/mvc에서 작동하지 않습니다.

현재 구성 시도 : .htaccess 파일을 현재 웹 사이트의 루트 디렉토리에 넣었습니다.

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^/dev(.*)$ <url>/dev/$1 
RewriteRule ^/test(.*)$ <url>/test/$1 
RewriteRule ^/site(.*)$ <url>/site/$1 

참고 : 전체 URL 대신에. 이렇게하면 'dev'가 포함 된 모든 URL이/dev/$ 1로 리디렉션되어야하며 $ 1에는 나머지 모든 매개 변수가 포함됩니다.

결과 : 'test'또는 'site'의 'dev'홈페이지가 호출 될 때. 홈페이지가 완벽하게 표시됩니다.

문제 : 나는 메뉴 항목이나 링크를 클릭 매번는, 결과 URL이있는 올바른 URL로 다시 작성됩니다 : 자원 봉사 =는/dev/자원 봉사 페이지 & LANG = NL

그러나 나는 errormessage를 얻는다 404 :

The requested URL /dev/volunteering was not found on this server. 

그것은 mvc 구현에 관한 것이다.

필수 도움말 : 브라우저의 요청이 종류가 현재 웹 사이트에서 처리 할 수없는 것을 이해 할 필요가 무엇 변화 하지만, 'DEV'또는 '시험'또는 '사이트'의 따라 요청은 mvc 구현이 이해할 수있는 방식으로 적절한 하위 디렉토리로 전달되어야합니다.

+0

, 당신은 라우터가 필요합니다. ** ** 규칙을 다시 작성하지 말고 하나만 유지하십시오. 20 또는 50 개의 재 작성이 있다면 어떻게 될까요? 수동으로 다시 작성 하시겠습니까? – Yang

답변

0

이 시도하십시오 : 당신이 MVC에 대해 얘기하는 경우

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(dev)(volunteering([^?]*)) $1/$2?page=$2&lang=nl [L,NC] 
RewriteRule ^(test)(volunteering([^?]*)) $1/$2?page=$2&lang=nl [L,NC] 
RewriteRule ^(site)(volunteering([^?]*)) $1/$2?page=$2&lang=nl [L,NC] 
+0

입력 해 주셔서 감사합니다.하지만 같은 오류 메시지가 나타납니다. –

+0

직접 URL :/dev/volunteering? page = volunteering & lang = nl이 오류를 생성합니까? – Agilox

+0

다음 오류가 발생합니다. 요청한 URL/dev/volunteering이이 서버에서 발견되지 않았습니다. –

관련 문제