Hallo zusammen,
ich möchte mit meiner regex (mod_rewrite) folgendes machen:
wenn eine ganz bestimmte URL-Form verwendet wird -> index2.php
wenn gar keine Parameter verwendet werden -> index1.php
wenn keine der beiden Eigenschaften funktionieren -> index.php
Die Idee dahinter ist folgende: bei der index2.php stehen alle wichtigen Sachen in der URL kodiert und ich muss nichts mehr aus der DB lesen. Bei der index1.php kommt der Besucher zum ersten mal auf die Seite und es muss aus der DB gelesen werden. Stehen Parameter in der URL, es sind aber die falschen, greift keiner der regex und es kommt die Fehlerseite. Dadurch muss ich einmal keine if-Abfragen machen, ob irgendwelche Parameter gesetzt sind und regex übernimmt für mich gleich schon die erste Abprüfung.
Hier meine .htaccess
So könnte eine URL aussehen: http://localhost/1234/483/de/1
Wenn alle Parameter angegeben werden klappt das auch wunderbar, nur wenn falsche verwendet werden, z.B. http://localhost/1234/483qwe, leitet er trotzdem auf die index1.php
Wo ist mein (Denk)Fehler?
VIELEN DANK!
strauberry
ich möchte mit meiner regex (mod_rewrite) folgendes machen:
wenn eine ganz bestimmte URL-Form verwendet wird -> index2.php
wenn gar keine Parameter verwendet werden -> index1.php
wenn keine der beiden Eigenschaften funktionieren -> index.php
Die Idee dahinter ist folgende: bei der index2.php stehen alle wichtigen Sachen in der URL kodiert und ich muss nichts mehr aus der DB lesen. Bei der index1.php kommt der Besucher zum ersten mal auf die Seite und es muss aus der DB gelesen werden. Stehen Parameter in der URL, es sind aber die falschen, greift keiner der regex und es kommt die Fehlerseite. Dadurch muss ich einmal keine if-Abfragen machen, ob irgendwelche Parameter gesetzt sind und regex übernimmt für mich gleich schon die erste Abprüfung.
Hier meine .htaccess
PHP-Code:
RewriteEngine on
RewriteBase /
RewriteRule ([0-9]+)/([0-9]+) index2.php?accountID=$1&pageID=$2&lang=de&version=1
RewriteRule ([0-9]+)/([0-9]+)/(de|en) index2.php?accountID=$1&pageID=$2&lang=$3&version=1
RewriteRule ([0-9]+)/([0-9]+)/(de|en)/([0-9]+) index2.php?accountID=$1&pageID=$2&lang=$3&version=$4
RewriteRule (.{,0}) index1.php
Wenn alle Parameter angegeben werden klappt das auch wunderbar, nur wenn falsche verwendet werden, z.B. http://localhost/1234/483qwe, leitet er trotzdem auf die index1.php
Wo ist mein (Denk)Fehler?
VIELEN DANK!
strauberry
Kommentar