2012-09-25 2 views
0

mydomain.com/forum/은 실제 디렉토리입니다..htaccess - 실제 디렉토리에서 리디렉션 500 오류

내 htaccess로 이러한 두 줄을 추가 할 경우 :

RewriteRule ^forum/([a-zA-Z0-9_-]+)/new-thread /forum/new-thread.php?comm=$1 [L] 
RewriteRule ^forum/([a-zA-Z0-9_-]+) /forum/community.php?comm=$1 [L] 

mydomain.com/forum/가 AKA mydomain.com/forum/index.php는 500 오류뿐만 아니라,이 라인에 의해 변경 될 예정 모든 규칙을 던졌습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

오류 로그 출력 : 당신도 재 작성을 중지하기 위해 정규식에 일치하는 문자열의 $ 끝을 추가하거나 조건을 추가 할 수 있습니까? –

답변

0

정규 표현식에 경계를 추가해야합니다. 예를 들어, 정규식 ^forum/([a-zA-Z0-9_-]+)/forum/new-thread/forum/community과 일치하므로 규칙이 반복됩니다.

RewriteRule ^forum/([a-zA-Z0-9_-]+)/new-thread$ /forum/new-thread.php?comm=$1 [L] 
RewriteRule ^forum/([a-zA-Z0-9_-]+)$ /forum/community.php?comm=$1 [L] 

또는

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule^- [L] 

RewriteRule ^forum/([a-zA-Z0-9_-]+)/new-thread /forum/new-thread.php?comm=$1 [L] 
RewriteRule ^forum/([a-zA-Z0-9_-]+) /forum/community.php?comm=$1 [L] 

또는

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^forum/([a-zA-Z0-9_-]+)/new-thread /forum/new-thread.php?comm=$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^forum/([a-zA-Z0-9_-]+) /forum/community.php?comm=$1 [L] 
+0

몰랐습니다! 엄청 고마워! –