2013-05-03 3 views
0

.htaccess 파일이 있고 언제든지 www.example.com/demo/index.php를 입력하면 루프가 계속 리디렉션됩니다. 나는 이것이 왜 일어나고 있는지에 대해 정말로 혼란 스럽다. 당신이하고있는 경우mod_rewrite가 아무 이유없이 주소 표시 줄을 변경합니다.

# Do not remove this line, otherwise mod_rewrite rules will stop working 

RewriteBase/

Options +Multiviews 

AddHandler application/x-httpd-php .css 

AddHandler application/x-httpd-php .js 

RewriteEngine On 


#NC not case sensitive 
#L last rule don't process futher 
#R 301 changes the url to what you want 

RewriteRule ^demo(.*)$ finished$1 [NC] 

RewriteCond %{REQUEST_URI} ^/finished/.*$ 
RewriteRule ^finished/(.*)$ demo/$1 [NC,R=301,L] 
+0

당신이'Multiviews를이해야합니까를 '? 콘텐츠 협상이 부주의로 어딘가에 리디렉션을 유발할 수 있습니다. –

+0

나는 문제가 될 수 있다고 생각하지는 않았다. 그것이 파일 확장자를 없애고 있다고 생각했지만 –

+0

이 여전히 동일한 문제를 가지고 그것을 변경하려고 시도 할 수 있습니다. ( –

답변

1

나는 재 작성 루프가 일어나고 볼 수 있습니다

http://mydomain/demo/rewrite.cgi 

그가 재 작성 조건과 일치하는 다음

http://mydomain/finished/rewrite.cgi 

하고 첫 번째 규칙에 의해 다시 얻을 것이다 때문에 제 2 재기록 룰의 재기록 룰은 다음과 같이 재기록된다 :

그리고 루프가 시작됩니다.

A)이 일어날 것이다 마지막으로 재 작성한다 (첫 번째 재 작성 규칙 에 L 플래그를 추가) 또는 데모가 다음에 슬래시가없는 재 작성하는 경우 b)는 내가 그 암시를 만들 것 중 하나이 수정 아마 여기있다 :

RewriteRule ^demo([^/]+)$ finished$1 [NC] 

그 원인이 아니라면, 그것은 다시 쓰기 규칙 로깅을 설정하고, 루프를 생성하기 위해 수행되고 있는지 보는 다른 옵션 :

RewriteLog /path/to/rewrite.log 
RewriteLogLevel 3