From 06a18a2d197a0bb23575a12a966668a58a376f1e Mon Sep 17 00:00:00 2001 From: fs Date: Fri, 31 Jul 2026 22:11:08 +0200 Subject: [PATCH] 301-Weiterleitungen der alten CMS-Adressen Der Aufnahmeantrag der Turnabteilung ging als alte URL in den Einladungen an die neuen Familien raus und lief seit dem Umzug in einen 404, ebenso der Link auf die Turn-Seite. Beide leiten jetzt weiter, dazu alle uebrigen Seiten der alten Navigation unter /08/de/. Die PDF-Regel matcht am Umlaut vorbei: der Dateiname kommt je nach Mailprogramm als NFC, als NFD (so stand er in der alten Datenbank) oder roh als UTF-8 an. Die Sammelregel wirft den alten Query-String weg, sonst haengt mod_rewrite ?group_filter_id=14 ans neue Ziel. Erledigt damit den offenen Punkt F3 aus docs/deploy.md. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01RWoqDYuANFbJDGFQAgaRdT --- docs/deploy.md | 11 +++++++---- public/.htaccess | 25 +++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/docs/deploy.md b/docs/deploy.md index 0268c8c..92ff3bc 100644 --- a/docs/deploy.md +++ b/docs/deploy.md @@ -374,10 +374,13 @@ Verzeichnis liegt und die alte Datenbank nicht anfasst. ### F3 Offen, nach dem Livegang -- **301-Weiterleitungen der alten URLs.** Die neue Seite hat andere Slugs; alte - Google-Treffer und fremde Links laufen ins Leere. Die alten Adressen stehen im - DB-Dump unter `.context_db`. Aufwand lohnt für die paar wichtigen Seiten, nicht - für alle. +- ~~**301-Weiterleitungen der alten URLs.**~~ Erledigt am 31.07.2026: `public/.htaccess`, + Block „Alte CMS-Adressen". Abgedeckt sind der PDF-Aufnahmeantrag der Turnabteilung + (`/userdata/01_Basis/Beitrittserkl…pdf`, so in den Einladungen verschickt) und alle + Seiten der alten Navigation unter `/08/de/…` (Zuordnung aus `main_navigation` im + DB-Dump). **Nicht** dabei und bewusst nicht nachgezogen: die Bilder und das + Hero-Video unter `/userdata/04_Seiteninhalte/` — die liegen auf der neuen Seite in + anderer Form, eine Weiterleitung von Bild-URLs hilft niemandem. - **Google Search Console:** Property anlegen, `sitemap.xml` einreichen. - **Instagram-Sync** beobachten, siehe C3. - Nach dem Sportfest (ab 07.09.2026) fallen zwei Anzeigen per `bis`-Datum aus dem diff --git a/public/.htaccess b/public/.htaccess index 076573c..86511b1 100644 --- a/public/.htaccess +++ b/public/.htaccess @@ -24,6 +24,31 @@ RewriteRule ^ https://www.tsv08kulmbach.de%{REQUEST_URI} [R=301,L] # unbekannten Slug abfangen und einen 404 rendern. RewriteRule ^turnen/step-aerobic-fitness-pilates/?$ /turnen/fitness-pilates [R=301,L] +# --- Alte CMS-Adressen (301) --- +# Die alte Seite lief unter /08/de// und lieferte Dateien aus /userdata/. +# Beides ist seit dem Umzug tot, die Adressen stehen aber in Einladungen, Aushängen +# und im Google-Index. Steht wie die Regel darüber VOR dem Front Controller. +# +# Der Aufnahmeantrag der Turnabteilung ist der dringendste Fall: er ging so an die +# neuen Familien raus. Der Dateiname trägt ein „ä" und kommt je nach Mailprogramm in +# drei Fassungen an: NFC (%C3%A4), NFD (a%CC%88 — genau so stand der Link in der alten +# Datenbank) oder roh als UTF-8. mod_rewrite prüft den dekodierten Pfad, also matchen +# wir am Umlaut vorbei, statt eine der drei Fassungen zu raten. +RewriteRule ^userdata/01_Basis/Beitrittserkl[^/]*\.pdf$ /assets/downloads/beitrittserklaerung-turnen.pdf [R=301,L,NC] + +# Seiten, die ihren Namen behalten haben. Das abschließende „?" wirft den alten +# Query-String weg (die Turn-Seite hatte ?group_filter_id= als Disziplin-Filter, +# 14 war „Allgemeines") — ohne das hängt mod_rewrite ihn ungefragt ans neue Ziel. +RewriteRule ^08/de/(fussball|jugendfussball|matchcenter|turnen|mitglied-werden|kontakt|historie|impressum|datenschutz)/?$ /$1? [R=301,L] + +# Seiten, die heute anders heißen +RewriteRule ^08/de/home/?$ / [R=301,L] +RewriteRule ^08/de/aktuelles/?$ /news [R=301,L] +RewriteRule ^08/de/der-verein/?$ /verein [R=301,L] +RewriteRule ^08/de/der-verein/historie/?$ /historie [R=301,L] +RewriteRule ^08/de/der-verein/sportheim/?$ /sportheimbuchung [R=301,L] +RewriteRule ^08/de/personen/?$ /ansprechpartner [R=301,L] + # --- Front Controller --- RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d