2011-03-06 2 views
0

여기 내 .htaccess내가 [L]을 넣더라도 내 규칙이 항상 리디렉션되는 이유는 무엇입니까?

RewriteEngine on 
RewriteRule .* index.php?url=$0 [L] 

그리고 내 index.php 파일입니다 :

<?php 
var_dump($_GET); 

내가 mysite/cat에 갈 때 내가 얻을 : 그것은 두 번 리디렉션 제안

array 
    'url' => string 'index.php' (length=9) 

index.php가 점점 url에 박제되었습니다. 나는 [L]가 그것을 막기로되어 있다고 생각 했습니까?

답변

1

플래그 L 플래그는 현재 요청에 대해 RewriteRule 초가 더 이상 적용되지 않지만 외부 리디렉션이 발생하면 전체 규칙 집합이 처음부터 다시 입력됩니다.

+0

그렇다면 그것을 막는 가장 좋은 방법은 무엇일까요? 'RewriteCond % {REQUEST_FILENAME}! index.php'? – mpen

+1

그건 한 가지 방법입니다. 또 하나는'-f'와'-d'를 사용하여 실제로 존재할 수있는 것으로부터 재지향하지 않기 위해 사용하는 것입니다. –

관련 문제