2012-09-15 2 views
0

{url}/klanten/home/또는 {url}/klanten/logout/500 내부 서버 오류가 발생했습니다.Htaccess URL 다른 주소로 다시 작성

내 htaccess로 :

RewriteEngine on 

RewriteRule ^klanten/([^/]+)/?$ klanten/$1.php [L,QSA,NC] 

RewriteRule ^error/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ error.php?type=$1&error=$2&file=$3&from=$4 [L,QSA,NC] 

RewriteRule ^email/([^/]+)/?$ email.php?id=$1 [L,QSA,NC] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php [L] 

지도 'klanten'이 존재하고 파일 home.php 및 logout.php도 존재한다.

감사합니다.

답변

1

이 규칙은 잘못이다, 그것은 무기한 리디렉션에 이르게 :

RewriteRule ^klanten/([^/]+)/?$ klanten/$1.php [L,QSA,NC] 

/klanten/logout/가 다시 다시 다시 다시 작성됩니다 /klanten/logout.php으로 이어질 것입니다.

당신은 그 점없이 URL 만 얻을 수 있도록 다시 쓴 방지하기 위해 문자 클래스에 점을 추가 할 수

: 분명히 (

RewriteRule ^klanten/([^/\.]+)/?$ klanten/$1.php [L,QSA,NC] 

아니면 그냥 기존 파일과 디렉토리가 다시 작성되지 않는 조건을 추가를 더 나은 해결책 ...) :

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^klanten/([^/]+)/?$ klanten/$1.php [L,QSA,NC] 
+0

감사합니다. 마지막 작품! – Wouter0100