Gorß/Kleinschreibung von URL's
Jürschn
- webserver
0 Ashura0 MudGuard1 Matti Maekitalo
Hi,
gleich zum Problem: hab vor kurzem eine komplett Homepage auf einen anderen Server "umziehen" lassen. Allerdings unterscheidet der neue Server nach Groß/Kleinschreibung der Verzeichnis und Dateinamen, was nun zu Folge hat das etliche Links/Bilder ect. nicht mehr angezeigt werden.
Da es aber zu lange dauern würde die ganzen Links,Bildaddressen,ect... abzuändern, suche ich nach einer Möglichkeit mittels htaccess diese Groß/Kleinschreib-Unterscheidung abzuschalten.
Schonmal im voraus besten Dank, hoffe mir kann wer dabei helfen.
Mit freundlichen Grüßen
Jürschn
Hallo Jürschn.
Da es aber zu lange dauern würde die ganzen Links,Bildaddressen,ect... abzuändern, suche ich nach einer Möglichkeit mittels htaccess diese Groß/Kleinschreib-Unterscheidung abzuschalten.
Abschalten kannst du sie nicht, da sie ein fester Bestandteil der Dateiverwaltung unter Linux-Systemen ist.
Gruß, Ashura
Hi,
gleich zum Problem: hab vor kurzem eine komplett Homepage auf einen anderen Server "umziehen" lassen. Allerdings unterscheidet der neue Server nach Groß/Kleinschreibung der Verzeichnis und Dateinamen, was nun zu Folge hat das etliche Links/Bilder ect. nicht mehr angezeigt werden.
ggf. könnte mod_speling helfen, falls das Modul installiert ist …
cu,
Andreas
use Mosche;
gleich zum Problem: hab vor kurzem eine komplett Homepage auf einen anderen Server "umziehen" lassen. Allerdings unterscheidet der neue Server nach Groß/Kleinschreibung der Verzeichnis und Dateinamen, was nun zu Folge hat das etliche Links/Bilder ect. nicht mehr angezeigt werden.
Zu Beginn: mod_speling sollte, wie bereits gesagt, helfen. Siehe dazu Doku zu mod_speling
Es gibt auch noch eine andere Möglichkeit, die allerdings ein "wenig" häßlich ist:
Du brauchst dazu ein kleines Progrämmchen to_lowercase, Zugriff zur Apache-Konfig und mod_rewrite.
Der Reihe nach:
Benenne erstmal alle Dateien um, so daß sie nur in Kleinbuchstaben geschrieben sind.
Dann speicherst du das untenstehende Programm einfach als to_lowercase ab, außerhalb des DocumentRoot und machst es ausführbar.
<cite to_lowercase>
#!/usr/bin/perl -w
$|++;
print lc($_) while(<STDIN>)
</cite>
Dieses Programm wandelt einfach alles, was es auf der Standard-Eingabe bekommt, in Kleinbuchstaben um.
Dann editierst du die Apache-Konfig und ergänzt folgendes (in deinem VirtualHost):
RewriteEngine on
RewriteMap to_lowercase prg:/dein/pfad/zu/to_lowercase
RewriteRule (.*) ${lowercase:$1}
Folgendes passiert dadurch:
durch RewriteEngine schaltest du mod_rewrite an.
Die RewriteMap-Direktive definiert quasi eine "Funktion" namens to_lowercase, die den übergebenen String in Kleinbuchstaben verwandelt und zurückgibt (das macht das to_lowercase-Programm).
Die RewriteRule am Ende wandelt alle Zugriffe auf die die entsprechend klein-geschriebene URL um.
use Tschoe qw(Matti);
use Mosche;
Kleiner Fehler hier:
RewriteMap to_lowercase prg:/dein/pfad/zu/to_lowercase
RewriteRule (.*) ${lowercase:$1}
Da muß es ${to_lowercase:$1} heißen.
use Tschoe qw(Matti);