2012-01-30 2 views
0

내가 가지고있는/백엔드 폴더에 다음의 .htaccess :나에게 잘못된 값을 제공

RewriteEngine On 
RewriteBase /backend 
RewriteRule ^(.*)\.php$ index.php?path=$1 [L] 

나는 $ _GET은 [ '경로']은 문자열 "인덱스"를 반환하지 http://mysite.com/backend/test/pages/dashboard.php 방문 "테스트 /pages/dashboard.php "를 입력하십시오.

내가 뭘 잘못하고 있니? 나는 이것을 알아낼 수 없다.

+0

어떤 종류의 프레임 워크를 사용하고 있습니까, 아니면 일반 PHP를 사용하고 있습니까? – jprofitt

+0

VPS에서는 일반 PHP입니다. 이 아파치 설정 문제 일종의 수 있을까? 나는 이걸 구글을 사용할 때 아무 것도 못 찾는다. – OMGKurtNilsen

+0

'var_dump ($ _GET)'또는'var_dump ($ _REQUEST)'가 도움이되는 것을 반환합니까? – jprofitt

답변

2

다른 규칙보다 먼저 다음 규칙을 추가하여이를 해결했습니다.

RewriteRule  ^index.php$ - [L] 

TerryE 지적 :

그것을 깨끗한 패스를 때까지 재 작성 엔진이 htaccess로를 통해 파일을 루프 perdir의 맥락에서.

mod_rewrite는 첫 번째 다시 쓰기의 결과도 규칙과 일치하므로 url을 두 번 다시 작성했습니다.

+0

perdir 컨텍스트에서 다시 쓰기 엔진은 깨끗한 패스를 얻을 때까지'.htaccess' 파일을 반복합니다. 추가 규칙은이 "마지막 통과"가 두 번째 반복에서 발생하게하여 이전의 첫 번째 규칙을 반복하기 전에 다른 방법으로'backend/test/pages/dashboard.php' ->'backend/index.php? path = test/pages/dashboard.php' ->'backend/index.php? path = index' ->'backend/index.php? path = index' (변경이 없으므로 종료). 내 설명을 이해하니? – TerryE

+0

그래, 결국 나는 한 번 이상 다시 쓰고 있다고 생각했다. [L]과 함께이 새로운 규칙을 추가하면 index.php 파일을 다시 쓸 수 없습니다. 결국 나는 경기의 확장을 .html로 변경했고 그렇게 수정했습니다. – OMGKurtNilsen

+0

그래, 당신은 방금'RewriteCond $ 1! = index'를 기존 규칙에 추가하여 이런 상황에서 발사되는 것을 막을 수있었습니다 – TerryE

관련 문제