mod_rewrite + osCommerce - Sonderzeichen in der URL

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

mod_rewrite + osCommerce - Sonderzeichen in der URL

Beitragvon Straddi » 25.09.2004 20:41

Hallo,

ich habe gerade dieses Forum entdeckt und direkt eine Frage, da ich mich zur Zeit mit modrewrite beschäftige.

Standartmässig sieht meine URL so aus

...cPath=24_22
dabei steht 22 z.B.für Kaffeemaschinen und 22 für grün.

Das wird aus der Datenbank ausgelesen und der Link
kaffeemaschinen/grün.html erzeugt.

Dieser Link hat ja ein Sonderzeichen. Man kann ja jetzt mit dem php Befehl urlencode grün in gr%FCn umwandeln das ergibt dann die Url

kaffeemaschinen/gr%FCn.html

und diese wird dann später über urldecode wieder in grün verwandelt.

gr%FCn sieht meiner Meinung nach auch nicht besser aus. Daher bin ich auf die Idee gekommen die Sonderzeichen mit preg_replace zu ersetzen.

Dabei wird aus grün dann ja gruen.

Auch das muss ja wieder umgewandelt werden, damit die Url gefunden wird. Dabei nutze ich wieder preg_replace und mache aus ue ein ü.

das funktionert bei
kaffeemaschinen/grün.html
auch gut. Jetzt zu dem Problem (daher auch die Kaffemaschinen)

kaffeemaschinen/grün/saeco.html wird umgewandelt in:

kaffeemaschinen/gruen/saeco.html

Beim zurückverwandeln entsteht jetzt dass Problem.

gruen wird korrekt in grün verwandelt

der Hesteller saeco wir aufgrund des ae in ä also zu

säco verwandelt. Damit funktioniert die Url natürlich nicht mehr.

Hat vielleicht jemand von Euch eine Idee, wie sich das Problem lösen lässt?

Vielen Dank im Voraus

Gruss Straddi
Straddi
.
.
 
Beiträge: 1
Registriert: 25.09.2004 20:13

Beitragvon Bob » 02.10.2004 19:17

hi,

mir fällt da jetzt nichts besseres ein, als alles mit der Datenbank nochmal abzugleichen; steht das Wort z.B. saeco so in der DB, wird nichts gewandelt. Wird keine Übereinstimmung gefunden -> wandeln und noch mal DB durchlaufen bzw. den Array. Allerdings bei saecö ;-) läuft das auch in den Sand.

Gruß
Robert
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10

Beitragvon Jahuu » 18.11.2004 17:38

Eine Möglichkeit sehe ich noch für dein Problem, die halbwegs praktikabel ist.
Du verwendest einfach ein Array mit "Not-Replace"-Werten an, ungefähr so:
Code: Alles auswählen
$notReplace = array("saeco", "not-replaece", "...");
...
...
//Ersetze Umlaut nur wenn nicht in $noReplace...
if(!in_array($urlPart)) { //$urlPart => z.B. "saeco"
    $urlPart = preg_replace(...);
}


Grüße
Jahuu
Jahuu
.
.
 
Beiträge: 9
Registriert: 24.05.2004 18:31

Beitragvon George » 01.12.2004 22:38

Hallo @Straddi
Habe zufällig diesen Artikel entdeckt.
Kannst Du mir verraten wie Du die Domain Umwandlung für den OsCom Shop realiesiert hast?
Ich habe schon vieles versucht und manipuliert, habe es aber nie geschaft.
Oder hat einer der User hier im Forum ene Professionelle Lösung?
Gruß
George
George
.
.
 
Beiträge: 6
Registriert: 24.11.2004 11:00

Beitragvon evo42 » 28.12.2004 11:21

habe so etwas für meinen shop programmiert... um sicher zu sein, dass keine fehler auftauchen und eine schnelle/einfach lösung zu haben würde ich dir empfehlen, einfach die ids mitzugeben... mit punkt oder slash trennen, dann klappt das auch mit mod_rewrite ohne probleme...
zB http://domain.tld/kaffeemaschinen/24.22 ... omaten.htm
oder sonst irgendwie eindeutig...

wenn du dann auch noch bei den regex unterstriche, leerzeichen etc. durch bindestriche ersetzt hast ein perfektes url design (siehe: http://www.drweb.de/archiv/news141.shtml )

mfg
rene
evo42
.
.
 
Beiträge: 4
Registriert: 28.12.2004 11:12

htaccess auch php aufrufe

Beitragvon olli » 31.01.2005 02:12

hi,
leitest du alle links in oscommerce um und rewritest dann oder
kann man in der htaccess auch php aufrufe realisieren? :roll:

olli
olli
.
.
 
Beiträge: 8
Registriert: 29.01.2005 15:06
Wohnort: hamburg


Zurück zu Programmierung & Scriptanpassung für mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron