Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

modrewrite - fragezeichen in url

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Richie_Rich
PostRank 1
PostRank 1
Beiträge: 6
Registriert: 26.12.2007, 03:03

Beitrag von Richie_Rich » 23.12.2008, 13:33

hallo modrewrite-experten

ich bin langsam am verzweifeln. konnte nirgens eine lösung meines problems finden. ich hoffe hier gibt es ein paar modrewrite-freaks.

ich möchte eine url mit der form:
domainname.de/haus.php?Deutschland_München

in die form:
domainname.de/haus.php?country=Deutschland&city=München
bringen

das problem ist dass ich oben diesen fragenzeichen im domainname unbedingt brauche. also zwischen dem wort php und Deutschland.

ohne fragezeichen läuft alles nach plan... zb mit unterstrich statt fragezeichen.
aber sobald ich das fragezeichen dazwischenbaue lösst er die variablen $1 und $2 nicht mehr auf.

kennt jemand eine lösung?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


bloddy newbie
PostRank 4
PostRank 4
Beiträge: 171
Registriert: 18.05.2006, 20:15

Beitrag von bloddy newbie » 23.12.2008, 15:18

Code: Alles auswählen

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} haus\.php$
RewriteCond %{QUERY_STRING} ([^_]+)_([^_]+)$
RewriteRule ^(.*)$ haus.php?country=%1&city=%2

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 23.12.2008, 15:35

Richie_Rich hat geschrieben:ich möchte eine url mit der form:
domainname.de/haus.php?Deutschland_München

in die form:
domainname.de/haus.php?country=Deutschland&city=München
bringen
Wozu brauchst du das? Falls es darum geht, in haus.php auf $_GET["country"] und $_GET["city"] zugreifen zu können, solltest du das statt mit mod_rewrite besser im Skript selbst lösen, in etwa so:

Code: Alles auswählen

if (preg_match('/^([^_]+)_([^_]+)$/', $_SERVER["QUERY_STRING"], $m) != 1) {
    // Parameter entsprechen nicht Format Stadt_Land
}
else {
    $_GET["stadt"] = $m[1];
    $_GET["land"] = $m[2];
}
Das funktioniert genauso gut, du hast alles an einer Stelle und du sparst einen arbeitsreichen Umweg.
bloddy newbie hat geschrieben:RewriteCond %{REQUEST_URI} haus\.php$
RewriteCond %{QUERY_STRING} ([^_]+)_([^_]+)$
RewriteRule ^(.*)$ haus.php?country=%1&city=%2
Die erste RewriteCond-Zeile ist überflüssig, RewriteRule kann den URL-Pfad selbst prüfen:

RewriteCond %{QUERY_STRING} ^([^_]+)_([^_]+)$
RewriteRule ^haus\.php$ haus.php?country=%1&city=%2

bloddy newbie
PostRank 4
PostRank 4
Beiträge: 171
Registriert: 18.05.2006, 20:15

Beitrag von bloddy newbie » 23.12.2008, 15:38

Mork vom Ork hat geschrieben: ...
Das funktioniert genauso gut, du hast alles an einer Stelle und du sparst einen arbeitsreichen Umweg.
Sehe ich auch so.
Mork vom Ork hat geschrieben: Die erste RewriteCond-Zeile ist überflüssig, RewriteRule kann den URL-Pfad selbst prüfen:

RewriteCond %{QUERY_STRING} ([^_]+)_([^_]+)$
RewriteRule ^haus\.php$ haus.php?country=%1&city=%2
ist letzten Endes egal ob mittels Cond oder Rule geprüft wird meinste nicht?

Grüße

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 23.12.2008, 15:46

bloddy newbie hat geschrieben:
Mork vom Ork hat geschrieben: Die erste RewriteCond-Zeile ist überflüssig, RewriteRule kann den URL-Pfad selbst prüfen:

RewriteCond %{QUERY_STRING} ([^_]+)_([^_]+)$
RewriteRule ^haus\.php$ haus.php?country=%1&city=%2
ist letzten Endes egal ob mittels Cond oder Rule geprüft wird meinste nicht?
Die Funktion ist die gleiche, da hast du recht. Aber wozu umfangreich, wenn's auch kürzer geht - und noch dazu auf dem vorgesehenen Wege. Warum die halbe RewriteRule-Funktion brach liegen bzw. nutzlos ausführen lassen? Wenn man schon den Pfad prüft, dann doch gleich mit dem richten Muster anstatt erst auf .* vergleichen zu lassen und gleich danach auf haus\.php.

bloddy newbie
PostRank 4
PostRank 4
Beiträge: 171
Registriert: 18.05.2006, 20:15

Beitrag von bloddy newbie » 23.12.2008, 15:51

überredet :-)

Ich erstelle mein Rules immer so, da ich die Conditions passend bei Cond zu stehen habe - reine Gewohnheit. Kürze ist beim Programmieren nicht immer Alles, wie ich gelernt habe. Manchmal ist mehr auch mehr - aber ich möchte hier nicht vom Thema abschweifen.

Beste Grüße nochmal
Robert

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 23.12.2008, 15:57

bloddy newbie hat geschrieben:Kürze ist beim Programmieren nicht immer Alles,
Deswegen hatte ich beim Schreiben von „Aber wozu umfangreich, wenn's auch kürzer geht“ auch ein leichtes Grummeln im Bauch, das dann zu der längeren Erklärung geführt hat :)

Richie_Rich
PostRank 1
PostRank 1
Beiträge: 6
Registriert: 26.12.2007, 03:03

Beitrag von Richie_Rich » 23.12.2008, 18:58

vielen dank für die antworten.
die vermutung mit javascript als ursache war richtig.
da ich aber java-technisch so gut wie nix drauf habe, und ich im java-code nix ändern möchte/darf, habe ich die modrewrite-variante die hier vorgeschlagen wurde implementiert.
und es klappte auf anhieb!

vielen dank für die unterstützung!
hätte ich bloss früher hier fragen sollen..

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag