SEO: host-aware sitemap.xml + dynamische robots.txt je Domain
Sitemap pro Host (1h-Cache): Hub listet Landing + Rechts-/Info-Seiten, Spokes zusaetzlich Kategorien (lokalisierte Slugs), oeffentliche Newsrooms und alle im Archiv sichtbaren PMs des Portals (explizit ohne PortalScope, forPortalValues). Suche und Marketing-Platzhalterseiten bleiben draussen. Statische public/robots.txt entfernt (haette die Route verschattet); robots.txt jetzt dynamisch mit Sitemap-Verweis und Disallow fuer /admin, /login, /register, Suche. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
b855cbf7c0
commit
e9643e620a
5 changed files with 251 additions and 2 deletions
|
|
@ -9,6 +9,7 @@ use App\Http\Controllers\Web\NewsroomDetailController;
|
|||
use App\Http\Controllers\Web\NewsroomsController;
|
||||
use App\Http\Controllers\Web\PreiseController;
|
||||
use App\Http\Controllers\Web\ReleaseDetailController;
|
||||
use App\Http\Controllers\Web\SitemapController;
|
||||
use App\Http\Controllers\Web\SucheController;
|
||||
use App\Http\Controllers\Web\TerminationController;
|
||||
use App\Http\Controllers\Web\VeroeffentlichenController;
|
||||
|
|
@ -218,6 +219,31 @@ Route::prefix('{edition}')->whereIn('edition', SetEdition::EDITIONS)->group(func
|
|||
Route::view('cookies', 'web.cookies')->name('cookies');
|
||||
});
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// SEO: Sitemap + robots.txt, host-aware (Hub vs. Spokes). Die frühere
|
||||
// statische public/robots.txt wurde entfernt — sie hätte diese Routen
|
||||
// verschattet (Webserver liefert existierende Dateien direkt aus).
|
||||
// ---------------------------------------------------------------------------
|
||||
Route::get('/sitemap.xml', SitemapController::class)->name('sitemap');
|
||||
|
||||
Route::get('/robots.txt', function () {
|
||||
$base = rtrim(request()->getSchemeAndHttpHost(), '/');
|
||||
|
||||
$lines = [
|
||||
'User-agent: *',
|
||||
'Disallow: /admin',
|
||||
'Disallow: /login',
|
||||
'Disallow: /register',
|
||||
'Disallow: /de/suche',
|
||||
'Disallow: /en/suche',
|
||||
'',
|
||||
'Sitemap: '.$base.'/sitemap.xml',
|
||||
'',
|
||||
];
|
||||
|
||||
return response(implode("\n", $lines), 200, ['Content-Type' => 'text/plain; charset=UTF-8']);
|
||||
})->name('robots');
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Sprach-/Edition-unabhängige Routen (API-Doku).
|
||||
// ---------------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue