Hallo Welt.
Falls zufällig am Wochenende jemand hier war bzw. sein wollte: die Seite war offline. Hab eine Endlosschleife in eine mod_rewrite-Anweisung (die sagt dem Server was er machen soll) gebastelt. Aua aua aua... *räusper* naja!
Jedenfalls habe ich die Zeit genutzt und mir zuhause eine ordentliche Testumgebung eingerichtet, wo ich dann gestern und heute (also Montag und Dienstag) den ganzen Tag damit verbracht habe, Serverlogs zu studieren, zu fluchen, an allen möglichen Stellen gegen die .htaccess-Datei zu treten, zu schimpfen, diverse Suchmaschinen zu sehr vielen Themen und Stichwörtern zu bemühen, zu lesen, zu basteln, zu schimpfen und zu fluchen, und mich zwischendurch über die ganz, ganz kleinen Erfolge zu freuen.
Und heute abend war’s dann soweit: in mühevoller Kleinarbeit fand sich der entscheidende Hinweis auf den Flag [DPI]. Und auf einmal funktionierte alles einwandfrei. Hab ich da gejubelt! Und erstmal ’ne Pause gemacht, was gegessen und mich des Lebens gefreut.
Die Ernüchterung kam dann, als die Seite wieder online war und meine schöne, gute, ordentliche, korrekte .htaccess-Datei online ganz lapidar einen Error 500 produzierte... ARGH!! Woran lag’s? Ich hab zuhause Apache 2.2, und [DPI] ist neu für diese Version. Online läuft Apache 2.0.
*seufz*
Wiederum hat mich das aber soviel Zeit und Mühe gekostet und im Netz war so wenig zu dieser eigentlich nicht so seltenen und eigentlich auch nicht so komplizierten Problematik zu finden, dass ich hier auf jeden Fall meine Lösung trotzdem posten muss. Die für Apache 2.0 kommt dann morgen oder so :-)
Aufgabenstellung: Aus den alten URLs die Unterverzeichnisse sowie das .html am Ende entfernen und ae, oe, ue, _ in ä,ö,ü,- umwandeln. Das Problem war – und ich versteh das immer noch nicht, was die Lösungsfindung natürlich sehr erschwert – die Regel, die die Unterverzeichnisse entfernen sollte, denn die produzierte seltsamerweise eine Dopplung des Dateinamens hinten. Jedenfalls irgendwie in Zusammenhang mit den Regeln, die die Zeichen ersetzten. Und dann kann der natürlich lange ersetzen, wenn immer wieder neue zu ersetzende Zeichen auftauchen...
Des Rätsels Lösung für Apache 2.2:
# rewrite old links!
RewriteRule ^index\.(html)$ / [L,R=301]RewriteCond %{REQUEST_URI} \.html$
# [paar Sonderregeln hier]# remove subdirectories
RewriteRule ^gedankenarchiv/(.*)$ gedanken/$1 [DPI]
RewriteRule ^.*buecher/(.*)$ bücher/$1 [DPI]
RewriteRule ^(geschriebenes|gedichte|liedtexte|prosa)/(.*)$ texte/$2 [DPI]
RewriteRule ^projekte/(.*)$ projekte/$1 [DPI]
RewriteRule ^regionales/(.*)$ regionales/$1 [DPI]# Umlaute... inspired by http://www.abakus-internet-marketing.de/foren/viewtopic/t-76764.html
# do NOT rewrite files and directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_URI} !(.*)(ae|oe|ue|_)(.*)\.html
RewriteRule .? - [S=5]RewriteRule (.*)_(.*)$ $1-$2 [DPI]
RewriteRule (.*)ae(.*)$ $1ä$2 [DPI]
RewriteRule (.*)oe(.*)$ $1ö$2 [DPI]
RewriteRule (.*)ue(.*)$ $1ü$2 [DPI]
RewriteRule (.*)(ae|oe|ue|_)(.*)\.html$ - [N]RewriteRule ^(.*)\.html$ /$1 [R=301,L]
Ich hoffe, irgendwem erspart das hier irgendwannmal wenigstens einen Teil der Arbeit, die ich mir gemacht habe.
EDIT, eine Woche später: Ich bin ein Glückspilz. Kurz nach diesem Eintrag kratzte selbiger Server, also der online, ab. Hardwareschaden. Und als er am nächsten Tag wieder lief, war er mit Apache 2.2 ausgerüstet... :-DDD Ich hab seitdem noch ein bisschen an den URLs rumgeschraubt, und hier ist auch noch ein, zwei Tage Baustelle mit kaputten Links. Ich beeile mich.
- Zum Verfassen von Kommentaren bitte Anmelden oder Registrieren.