QA-Luecke geschlossen: Legacy-Medien-URLs redirecten wieder (301)

Die Scope-Doku fuehrte den /thumbnails-Redirect als "ANGEPASST", im Code
existierte er nicht — alte Symfony-Bild-URLs (/thumbnails/..., /uploads/
...) liefen ins 404. Neuer LegacyMediaRedirectController mappt den
Original-Dateinamen (bleibt beim Medien-Import erhalten) auf die neue
Storage-URL fuer PM-Bilder und Firmenlogos; unbekannte Dateien bleiben
404. Gefunden bei der R6.1-Vorpruefung.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-07-06 10:12:35 +00:00
parent 90fd171e37
commit d754ef4bef
3 changed files with 120 additions and 0 deletions

View file

@ -5,6 +5,7 @@ use App\Http\Controllers\PressReleasePreviewController;
use App\Http\Controllers\Web\CategoryController;
use App\Http\Controllers\Web\ContactController;
use App\Http\Controllers\Web\HomeController;
use App\Http\Controllers\Web\LegacyMediaRedirectController;
use App\Http\Controllers\Web\NewsroomDetailController;
use App\Http\Controllers\Web\NewsroomsController;
use App\Http\Controllers\Web\PreiseController;
@ -183,6 +184,14 @@ Route::get('{path}', function (string $path) use ($htmlRedirect) {
return $htmlRedirect(SetEdition::DEFAULT_EDITION, $path);
})->where('path', '.*\.html');
// Alte Symfony-Medien-URLs (Bestands-Backlinks): /thumbnails/... und
// /uploads/... -> 301 auf die neue Storage-URL, sonst 404.
Route::get('{prefix}/{dir}/{path}', LegacyMediaRedirectController::class)
->whereIn('prefix', ['thumbnails', 'uploads'])
->whereIn('dir', ['company', 'pressreleaseimage', 'pressreleaseimage_', '_pressreleaseimage'])
->where('path', '.+')
->name('legacy.media');
// ---------------------------------------------------------------------------
// Öffentliche Inhalte je Ausgabe (Sprache): /de/... und /en/...
// ---------------------------------------------------------------------------