Problem mit modrewrite

B

ByeBye 242513

Hallo,

habe hier ein kleines Problem, was mache ich falsch?
Erstmal zum Code.

.htaccess
PHP:
# URL Manipulation
RewriteEngine On
RewriteRule ^(.*)/(.*).html$ 		/index.php?page=$2&url=$1
RewriteRule ^(.*)/(.*)_(.*).html$    /index.php?page=$2&id=$3&url=$1

Beispiel 1: Ausgabe, wenn ich diesen Link eingebe: http://www.seite.de/profil/mail/read.html
Code:
Page: read
ID:
URL: profil/mail
Beispiel 2: Ausgabe, wenn ich diesen Link eingebe: http://www.seite.de/profil/mail/read_123.html
Code:
Page: read
ID: 123
URL: /index.php/mail

Was muss ich denn ändern, damit bei URL (Beispiel 2) das selbe wie bei Beispiel 1 steht?
 
Zuletzt bearbeitet von einem Moderator:
Guten Morgen,

gleich vorab, ich kenne mich mit dem Syntax nicht ganz so super aus, wie ich das jedoch sehe werden bei dir im zweiten Beispiel beide Rules angewendet.
Das müsstest du lediglich unterdrücken.

Meinen Erinnerungen nach geht das mit einem simplen [OR] am Ende der Zeile, es ist aber auch gut möglich dass da noch mehr gemacht werden muss. ;)

Code:
RewriteEngine On
RewriteRule ^(.*)/(.*).html$ 	     /index.php?page=$2&path=$1 [OR]
RewriteRule ^(.*)/(.*)_(.*).html$    /index.php?page=$2&id=$3&url=$1
 
Wenn ich ein [OR] schreibe erhalte ich die Fehlermeldung "500 Internal Server Error".
 
Du musst die Suchmuster genauer spezifizieren, etwa:
Code:
RewriteRule ^([^/]+)/([^/_]+)\.html$ /index.php?page=$2&url=$1
RewriteRule ^([^/]+)/([^/_]+)_([^/_]+)\.html$ /index.php?page=$2&id=$3&url=$1
 
Zurück