2013-07-26 3 views
0

을있는 디렉토리에 따라 $ _SERVER [ 'REQUEST_URI'를] 수정 : example.com의 index.php 내가 여기에 문제가

:

을 나는 virutalhost에서 실행중인 응용 프로그램이 응용 프로그램은 모든 모든 요청을 처리합니다 example.com/* 그리고 그들은 index.php 스크립트에 빠지면 마법이 더 많이 발생합니다.

: 내 질문은

을 example.com/abc/* :

마법 환경 변수 $ _SERVER [ 'REQUEST_URI']의 구성 요소를 모두 내가 하위 디렉토리에서 응용 프로그램을 실행하고 싶었다 때까지 잘 작동

example.com/abc/index.php 스크립트 을 $ _SERVER [ 'REQUEST_URI'] 항목에 입력 한 후 .htaccess의 항목을 사용하여 $ _SERVER [ 'REQUEST_URI']을 (를) 수정할 수 있습니다. 아니/abc/뭐든?

나는 약간의 연구를했으며, 천천히 index.php 스크립트의 $ _SERVER [ 'REQUEST_URI']를 수정 한 것만이 하나의 해결책이라고 결론 내릴 수 있습니까?

누구에게 아이디어가 있습니까?

는 것은 이러한 유형의 $_SERVER['REQUEST_URI']를 사용하지 않으려 고 어떤 도움

답변

0

주셔서 감사합니다.

대신 define을 사용하고 응용 프로그램 전체에서 해당 정의를 사용하십시오. 따라서 서브 디렉토리에 대해서는 애플리케이션 전체에 BASE_DIRBASE_URL을 사용하십시오. 당신이 다음 방금 두 변수를 변경하고 확실 $ _SERVER 만들기에 대해 걱정할 필요가 없기 때문에,이 쉽게 이루어집니다 다시 이동해야하는 경우

define("BASE_DIR", "/var/www/abc/"); 
define("BASE_URL", "/abc); 

는 [ 'REQUEST_URI는'] 권리입니다.

define("BASE_DIR", "/var/www/sitename.com/httpdocs/subdir"); 
define("BASE_URL", "/subdir); 

주 당신이 그렇게

echo "The base dir is " . BASE_DIR; 
+0

확인과 같은 이러한 정의를 사용하지만 사용자에 의해 생성 요청에 대한 정보가 필요합니다 경우 사용자 유형 : 나는 단지 조치 1 모든 쿼리를 얻으려면/ABC/조치 1 params, 사용자 유형 :/abc/action2 action2 및 모든 검색어 매개 변수 만 가져오고 싶습니다. 에 대한 정보 기본 URL에 대한 정보가 없습니다. – Marcin

+0

질문에 단어를 다시 입력해야합니다. 물었다. –

+1

. 죄송합니다. 해결책을 찾았습니다 : .htaccess 파일의'RewriteRule (. *) index.php [QSA, L, E = PATH_INFO :/$ 1]'는 $ _SERVER : REDIRECT_PATH_INFO에 추가 요소를 생성 한 다음 요청을 생성하면 like :/abc/action1 $ _SERVER [ 'REDIRECT_PATH_INFO'] = "/ action1" 죄송합니다. :) – Marcin

관련 문제