500 Internal Server Error
Verena
- programmiertechnik
Hallo,
ich habe folgende htaccess Datei diese sieht wie folgt aus:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !^/media/
RewriteRule ([a-z]+)$ /$1.php [L]
RewriteRule ([a-z]+)/([0-9]+)$ /$1.php?id=$2 [QSA,L]
RewriteRule ([a-z]+)/([a-z,A-Z,0-9,!]+)$ /$1.php?user=$2 [QSA,L]
bekomme jetzt ein Fehler 500 Internal Server Error
In den Logs steht folgendes:
The server encountered an internal error or misconfiguration and was unable to complete your request.
Gruß
Verena
RewriteCond %{REQUEST_URI} !^/media/
Das !^/media/
verursacht den Fehler. RewriteCond
RewriteRule ([a-z]+)$ /$1.php [L]
RewriteRule ([a-z]+)/([0-9]+)$ /$1.php?id=$2 [QSA,L]
RewriteRule ([a-z]+)/([a-z,A-Z,0-9,!]+)$ /$1.php?user=$2 [QSA,L]
Sicher, dass da nicht noch ein ^ davor muss bei den regulären Ausdrücken?
Bei example.com/bla/th89w4t würde schon die erste RewriteRule matchen.
MfG
bubble
--
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye
Hallo,
vielen Dank für deine Hilfe, hab es nun so geändert und es funktioniert:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/media/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z,-]+)$ /$1.php [L]
RewriteRule ^([a-z,-]+)/([0-9]+)$ /$1.php?id=$2 [QSA,L]
RewriteRule ^([a-z,-]+)/([a-z,A-Z,0-9,!]+)$ /$1.php?user=$2 [QSA,L]
RewriteRule ^([a-z,-]+)/([a-z,A-Z,0-9,!]+)/([a-z,A-Z,0-9,!,.]+)$ /$1.php?user=$2&datum=$3 [QSA,L]
Gruß
Verena
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/media/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^([a-z,-]+)$ /$1.php [L]
RewriteRule ^([a-z,-]+)/([0-9]+)$ /$1.php?id=$2 [QSA,L]
RewriteRule ^([a-z,-]+)/([a-z,A-Z,0-9,!]+)$ /$1.php?user=$2 [QSA,L]
RewriteRule ^([a-z,-]+)/([a-z,A-Z,0-9,!]+)/([a-z,A-Z,0-9,!,.]+)$ /$1.php?user=$2&datum=$3 [QSA,L]
Btw, wenn du auf die VHost-Konfiguration Zugriff hast, stopf den Kram da rein anstatt eine .htaccess-Datei zu verwenden. Die VHost-Konfiguration wird eigentlich nur beim Serverstart (bzw. wenn man den Server dazu bringt diese neu zu laden) geladen. Eine .htaccess-Datei wird im Gegenzug bei jedem Request geladen.
Des Weiteren ist es ab einem bestimmten Punkt ratsam, das Routing in ein Script zu packen. (Z.B. wenn du eine statische Routing-Tabelle in der DB hast)
Das musst du dann auch nicht in einen GET-Parameter stopfen sondern kannst mit $\_SERVER['REQUEST\_URI'] so viel rumspielen wie du willst.
MfG
bubble
--
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye