phil: PHP/Mod_Rewrite kürzen irgendwie den GET-Request

Hallo,

ich habe folgende Rewrite Rule, welche auch gut funktioniert:

RewriteRule ^([a-zA-Z0-9-]+)/?([a-zA-Z0-9-]+)?$ index.php?p=$1&id=$2&a=$3

Wenn ich nun aber um 2 Stellen erweitern will:

RewriteRule ^([a-zA-Z0-9-]+)/?([a-zA-Z0-9-]+)/?([a-zA-Z0-9-]+)/?([a-zA-Z0-9-]+)?$ index.php?p=$1&id=$2&a=$3&b=$4&c=$5

Dann geht das ganze nicht mehr weil er folgendes macht.

url: http://localhost/Artikel

Wenn ich nun echo $_GET['p'] mache, dann gibt er nur "Artik" aus und nicht mehr "Artikel". Wenn ich das mit der ersten RewriteRule mache, dann gehts.
Das gleiche bei anderen Wörten.
Sprich das Phänomen ist: Es kommen 2 Stellen hinzu und es fallen 2 Stellen beim Namen weg.

Woran liegt das?

Lg

Phil

  1. Woran liegt das?

    An deiner regEx. Das + steht für 1 oder n Zeichen, du meinst aber 0 oder n Zeichen und müsstest stattdessen den „*“ notieren.

    ^([a-zA-Z0-9-]+)/?([a-zA-Z0-9-]*)/?([a-zA-Z0-9-]*)/?([a-zA-Z0-9-]*)$

    1. Hallo.

      Gott super, vielen Dank!!!

      Wie lange ich nach der Lösung gesucht habe, unfassbar..

      Liebe Grüße

      Phil