MrSnoot: Komisches Verhalten von RewriteRule

Beitrag lesen

Hio,

ich habe bspw. folgende RewriteRule:

(#1): RewriteRule ^([^/\.]*)/$ hl.php?bereich=$1

um über '/grundlagen' auf /hl.php?bereich=grundlagen zuzugreifen.

Das klappt, '/grundlagen' wird in der Adresszeile allerdings automatisch zu '/grundlagen/'.

Anders sieht es bei einem zusätzlichen Unterverzeichnis aus:

(#2): RewriteRule ^([^/\.]*)/([^/\.]*)$ hl.php?bereich=$1&thema=$2

Zu beachten ist, dass hier am Ende des Suchstrings kein '/' steht. Bei der Eingabe von '/grundlagen/atombau' kommt auch diese Seite.

Wenn ich bei nur einer Variable (#1) den '/' am Ende des Suchstrings weglasse, wird die Seite nicht gefunden.
Wenn ich bei zwei Variablen (#2) den '/' am Ende des Suchstrings hinzufüge, muss ich explizit die Adresse auch mit '/' am Ende aufrufen.

Wieso kann ich bei (#1) den '/' am Ende also nicht weglassen, die Seite wird aber sowohl bei '/grundlagen' als auch '/grundlagen/' gefunden, bei (#2) muss ich jedoch die URL genau so mit oder ohne '/' eingeben, wie ich es in der Rule definiert habe?