Warum registrieren? Nur als registriertes Mitglied vom ABAKUS Forum hast Du vollen Zugriff auf alle Funktionen unserer Website.

Pluszeichen in Bindestrich umschreiben

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
kpl51
PostRank 1
PostRank 1
Beiträge: 17
Registriert: 02.12.2005, 09:33
Wohnort: Viersen
Kontaktdaten:

Beitrag von kpl51 » 28.04.2016, 00:05

Hallo,

nach dem Relaunch meiner Website muss ich die Dateistruktur anpassen. So gibt es eine Gruppe von Dateien, die auf eine neue umgeleitet werden muss.

So soll die Datei

mietverwaltung-Bokensdorf_NDS.html

geleitet werden an die neue Adresse

orte/hausverwaltung-bokensdorf_nds/

Das mache ich mit der folgenden Zeile in der .htaccess:
hausverwaltung-(.*)_(.*).html$ orte/hausverwaltung-$1_$2/ [L=301]

Soweit klappt das. Bis dann ein Ortsname auftaucht, der aus mehreren Wörtern besteht. Dann kommt der Request an mit

mietverwaltung-Neu+Bokensdorf_NDS.html

und soll zu

orte/hausverwaltung-neu-bokensdorf_nds/

Ich schaffe es einfach nicht, das Plus-Zeichen (URL-Code %2B) zu einem Bindestrich umzuschreiben.

Hat jemand 'ne Ahnung, was ich da tun mus?

Besten Dank von Klaus

nerd
PostRank 10
PostRank 10
Beiträge: 4056
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 28.04.2016, 01:18

Ich glaube das pluszeichen was du in der URL siehst war urspruenglich ein leerzeichen. Leerzeichen sind in URLs nicht erlaubt, und werden entweder in "+"oder "%20" umgeschrieben (bin jetzt nicht genau sicher, was wann gemacht wird...).

Soll heissen du muesstest in deiner htaccess nach leerzeichen suchen, nicht nach + zeichen :)

kpl51
PostRank 1
PostRank 1
Beiträge: 17
Registriert: 02.12.2005, 09:33
Wohnort: Viersen
Kontaktdaten:

Beitrag von kpl51 » 28.04.2016, 09:08

Das war genau der richtige Denkanstoß......

Vielen Dank dafür!

Es funktioniert jetzt so:
Suchstring =
^hausverwaltung-([a-zA-Z0-9]+)([\+]+)([a-zA-Z0-9]+)_([a-zA-Z0-9]+).html$

Dann lässt sich das Leerzeichen, so, wie ich es brauche, in einen Gedankenstrich (-) umschreiben.

Jetzt ist auch noch ein Problem mit den Umlauten aufgetaucht :(

SloMo
PostRank 10
PostRank 10
Beiträge: 4880
Registriert: 04.01.2005, 18:26

Beitrag von SloMo » 28.04.2016, 10:59

Diese Effekte sind wohl immer nur durch gezieltes Ausprobieren ;) zu lösen. Gerade bei Umlauten und UTF-8 vs. ISO-schießmichtot hängt es nicht nur vom Umschreiben ab, sondern auch von der späteren Verarbeitung im CMS. Wenn das CMS noch selbst Umleitungen vornimmt, ist das Chaos meist perfekt... also testen, testen, testen und möglichst keinen Fall übersehen.

kpl51
PostRank 1
PostRank 1
Beiträge: 17
Registriert: 02.12.2005, 09:33
Wohnort: Viersen
Kontaktdaten:

Beitrag von kpl51 » 28.04.2016, 12:06

Ich habe übrigens ein Code-Snippet gefunden, dass mir alle Umlaute und das "ß" in "ae", "oe" usw. wandelt:

Code: Alles auswählen

RewriteEngine on

RewriteRule ^(.*)(ä|Ä|ä|Ä)(.*) /$1ae$3 [L,R=301]
RewriteRule ^(.*)(ö|Ö|ö|Ö)(.*) /$1oe$3 [L,R=301]
RewriteRule ^(.*)(ü|ý|ü|Ü)(.*) /$1ue$3 [L,R=301]
RewriteRule ^(.*)(ß|ß)(.*) /$1ss$3 [L,R=301]
Und das läuft prima!

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag