Susann: Leerzeichen wird als %20 dargestellt .htaccess

Hi,

ich hab aus der Datenbank Links in der Form
abc.de/Grand Hand.html

nun werden sie im Browser zu
abc.de/Grand%20Hand.html

lieber wär mir natürlich
abc.de/Grand_Hand.html sauber und korrekt

in der .htacces krieg ich das nicht hin

bei "ä" klappt das mit
RewriteRule ^(.*)(ä|Ä|ä|Ä)(.*) /$1ae$3 [R=301]

bei Leerzeichen oder %20 geht es sber nicht - Server 500

jemand ne Idee?

Gruß
Susann

  1. lieber wär mir natürlich
    abc.de/Grand_Hand.html sauber und korrekt

    bei "ä" klappt das mit
    RewriteRule ^(.*)(ä|Ä|ä|Ä)(.*) /$1ae$3 [R=301]

    Wie siehts aus (kenne nur das Problem mit regulärem Ausdruck ws in Perl...) mit:
    RewriteRule ^(.*)([ ]*)(.*) /$1_$3 [R=301]
    RewriteRule ^(.*)(\s*)(.*) /$1_$3 [R=301]

    bei Leerzeichen oder %20 geht es sber nicht - Server 500

    jemand ne Idee?

    Gruß
    Susann

    1. Ne, leider nicht

      lieber wär mir natürlich
      abc.de/Grand_Hand.html sauber und korrekt

      bei "ä" klappt das mit
      RewriteRule ^(.*)(ä|Ä|ä|Ä)(.*) /$1ae$3 [R=301]

      Wie siehts aus (kenne nur das Problem mit regulärem Ausdruck ws in Perl...) mit:

      RewriteRule ^(.*)([ ]*)(.*) /$1_$3 [R=301]

      500er

      RewriteRule ^(.*)(\s*)(.*) /$1_$3 [R=301]

      ja, da macht er was komisches
      abc.de/Grand%20Hand.html____________________

      das hab ich auch schonmal zusammenbekommen - 20 Unterstriche angefügt
      Fehler: Umleitungsfehler

      Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.

      Ich kann natürlich auch im Skript die Leerzeichen rausbauen
      $name1=str_replace(" ", "_" , $name1) oder so ...

      aber das ist etwas komplex, und ich will da auch nicht überall  / an 50 Stellen rumfummeln müssen...

  2. hi,

    ich hab aus der Datenbank Links in der Form
    abc.de/Grand Hand.html

    nun werden sie im Browser zu
    abc.de/Grand%20Hand.html

    Wenn du es vernünftig machst, werden sie schon in deinem HTML-Code dazu - es ist _deine_ Aufgabe, Sonderzeichen in URLs zu kodieren, nicht die des Browsers.

    lieber wär mir natürlich
    abc.de/Grand_Hand.html sauber und korrekt

    Dann ersetze bei der Ausgabe dieses Links das Leerzeichen durch einen Unterstrich.

    in der .htacces krieg ich das nicht hin

    Du denkst offenbar falsch herum.

    mod_rewrite schreibt Anfragen, die vom Client kommen, serverintern in etwas anderes um.

    bei "ä" klappt das mit
    RewriteRule ^(.*)(ä|Ä|ä|Ä)(.*) /$1ae$3 [R=301]

    Auch das ist die "falsche Richtung".

    Vom Client sollte gar kein "ä" kommen, sondern ein %C3%A4 o.ä. - "ä" in UTF-8 URL-gerecht kodiert.
    Oder eben schon bei Auslieferung des HTML-Dokumentes durch "ae" ersetzt.

    bei Leerzeichen oder %20 geht es sber nicht - Server 500

    Die komplette Herangehensweise scheint unsinnig.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }