2012-09-15 26 views
0

當我到{url}/klanten/home /或{url}/klanten/logout/500內部服務器錯誤來。Htaccess URLRewrite到另一張地圖

我的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這反過來會一次又一次地改寫。

你可以點添加到字符類,以免使得僅有不帶點的網址都會改寫:

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

相關問題