seo
This commit is contained in:
@@ -60,7 +60,7 @@ class LandingController extends Controller
|
||||
$bootstrap = [
|
||||
'realm' => [
|
||||
'name' => $realmName,
|
||||
'mode' => sprintf('PvE · %s rate · RU', $rates['experience'] ?? 'x1'),
|
||||
'mode' => sprintf('PvP · %s rate · RU', $rates['experience'] ?? 'x1'),
|
||||
'realmlist' => $realmConfig['realmlist'],
|
||||
'online' => $playersOnline !== null,
|
||||
'players' => $playersOnline,
|
||||
|
||||
@@ -23,6 +23,8 @@ class NewsController extends Controller
|
||||
->withQueryString()
|
||||
->through(fn (News $item): array => $this->summary($item));
|
||||
|
||||
abort_if($articles->currentPage() > 1 && $articles->isEmpty(), 404);
|
||||
|
||||
return Inertia::render('News/Index', [
|
||||
...$this->portalProps($request),
|
||||
'articles' => $articles,
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\News;
|
||||
use App\Services\SeoService;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class SeoController extends Controller
|
||||
{
|
||||
public function robots(SeoService $seo): Response
|
||||
{
|
||||
$rules = config('seo.indexable')
|
||||
? "User-agent: *\nAllow: /\nDisallow: /api/\nDisallow: /launcher/\nDisallow: /appcast.xml\nDisallow: /up\n\nSitemap: ".$seo->routeUrl('seo.sitemap')."\n"
|
||||
: "User-agent: *\nDisallow: /\n";
|
||||
|
||||
return response($rules, 200, ['Content-Type' => 'text/plain; charset=UTF-8']);
|
||||
}
|
||||
|
||||
public function sitemap(SeoService $seo): Response
|
||||
{
|
||||
return response()->view('seo.sitemap', [
|
||||
'seo' => $seo,
|
||||
'articles' => News::query()->published()->select(['id', 'updated_at'])->orderBy('id')->cursor(),
|
||||
], 200, ['Content-Type' => 'application/xml; charset=UTF-8']);
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use App\Services\SeoService;
|
||||
use Illuminate\Http\Request;
|
||||
use Inertia\Middleware;
|
||||
|
||||
@@ -37,7 +38,7 @@ class HandleInertiaRequests extends Middleware
|
||||
{
|
||||
return [
|
||||
...parent::share($request),
|
||||
//
|
||||
'seo' => fn (): array => app(SeoService::class)->forRequest($request),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user