.htaccess mod_rewrite unter Linux

Hallo,
ich habe auf meinem Linuxserver eine .htaccess Datei mit mod_rewrite Regeln laufen.
Mein Problem ist, dass alle Sonderzeichen ignoriert werden.
Auszug:

RewriteEngine on
RewriteBase   /
RewriteRule ^home$ index.php
RewriteRule ^home/$ index.php
RewriteRule ^fan-stuff$ fanstuff.php
RewriteRule ^chat/new(.*)$ chat.php?action=new

Das mit dem Chat Funktioniert auch auf Windows aber nicht auf Linux, Liegt wohl auch an den Sonderzeichen.

Hoffe auf Hilfe,
Timo

Umlaute sollten URL-kodiert übergeben werden. Falls Du php verwendest nimm PHP: rawurlencode - Manual für jeden Link.

Kann man das direkt in die .htaccess schreiben, mit dem rawurlencode?

Nein, da das eine php-Funktion ist.

Das ist das Problem, ich suche ja eine Lösung, wie ich Sonderzeichen in meine .htaccess bekomme und die auch nicht ignoriert werden, bzw. eine Fehlerseite ausgeben.
Aber danke! :slight_smile:

Zeichen umzuwandeln geht ggfs. damit:

RewriteRule ^(.*)(ö|Ö|ö|Ö)(.*) /$1oe$3 [R=301]

wobei links die ASCII-Zeichen wie in dem Beispiel das ö bzw. Ö stehen müsste. Wenn Du utf-8-Zeichen hast, müsstest Du in der htaccess-Datei auch utf-8 Zeichen anstelle der ASCII-Zeichen für diese Umwandlung einfügen. Wie gesagt wäre es eine Umwandlung in oe, oder bei anderen Umlauten ae bzw. ue. Siehe auch:
Umlaute in URL: .htaccess-Einträge, Codierung UTF-8

Ob darüber eine Weiterleitung funktioniert weiß ich nicht, und bezweifel ich auch etwas zumal wie gesagt kodierte Zeichen bereits vor dem Aufruf besser sind. Siehe auch:
Probleme mit Sonderzeichen und .htaccess-Datei? [Archiv] - PHP script resource
.htaccess Weiterleitung mit Sonderzeichen

Funktioniert mit der Maskierung der Sonderzeichen. Danke! :slight_smile: