mod_rewrite - aber richtig!
-
Hallo Entwickler Gemeinde
Ich versuche mich gerade in mod_rewrite einzuarbeiten. Grundsätzlich kein schweres Thema aber es ist trotzdem nicht ganz alles klar. Also: Ich möchte gerne die URL's einer GET Anfrage (per Formular) rewriten. Also sobald man mit dem Formular etwas sucht, erscheint eine Seite mit den Resultaten. Diese haben dann Links welche ich umschreiben möchte. Und jetzt kommt die Problematik. Je nach dem wie detailliert gesucht wird, müssen die Links auch aussehen. Die grösstmögliche Länge eines Links kann so aussehen:
DYNAMISCHER LINK
STATISCH UMGESCHRIEBENER LINK
DIE REGEL
RewriteRule ads/([/])/([/]*)/([/])/zimmer/([/]*)-([/])/qm/([/]*)-([/])/preis/([/]*)-([/])/([/]*)/([/])/([/]*)/([/])/([/]*)/([/])/umkreis/([/]*)/makler/([/]*)/$ /get.php?property_categories=$1&property_types=$2&contract_type=$3&rooms_min=$4&rooms_max=$5&living_space_min=$6&living_space_max=$7&price_min=$8&price_max=$9&country=$10®ion=$11&postalcode=$12&city=$13&street=$14&street_nr=$15&radius=$16&agency_id=$17 [L]
Das ist aber irgendwie quatsch. Das ganze ist weder flexible noch sonst was. Was ist, wenn nun nur nach einem Land gesucht wird? Dann funktioniert die ganze Regel nicht mehr. Wie löse ich sowas nun am besten, dass sowohl die Regel immer stimmt, je nach dem wonach man sucht und dann auch die Links im Resultat auch dementsprechend stimmen? Gut, letzteres ist nicht so das Problem. Da könnte man anhand der GET Parameter überprüfen, ob ein Wert übergeben wurde und wenn ja, den Deep-Link bauen. Aber vielmehr, wie mache ich eine RewriteRule die flexibel auf das Formular reagiert? Mir fiehlen zwei Möglichkeiten ein:
a) Man benutzt rekursive Regeln, also immer einen Parameter weniger, bis es nur noch einen gibt. Finde ich aber nicht wirklich elegant umgesetzt.
b) Man setzt jeden Parameter in der Regel als optional, ich glaube das geht mit einem Fragezeichen. Aber auch das klingt nicht nach der perfekten Regel.
Deswegen, wie mache ich das am saubersten, dass ich die Formular Daten sauber in RewriteRule umsetzen kann und das diese auch flexibel und korrekt umgesetzt werden.
-
Ein weiteres Problem: Wenn ich den Link anhand der Parameter baue und einige aber nicht alle haben keine Werte, könnte sich unter umständen die Link Struktur verschieben und somit stimmt ggf. die Regel zwar noch aber es kommen die falschen Werte an....
-
keine Idee?
-
Versuche es evtl. mal hier:
Da habe ich damals bei unseren Rewrites auch gefragt.
-
Super, danke!