ホームページ > PHPフレームワーク > Laravel > LaravelページングSEOについての簡単な話

LaravelページングSEOについての簡単な話

藏色散人
リリース: 2020-04-14 13:38:05
転載
3622 人が閲覧しました

Laravel のページングは​​非常にシンプルで使いやすいですが、あまり理想的ではないことが 1 つあります。

デフォルトのページングによって生成されるリンクは

users?page=1
ログイン後にコピー

このフォームはあまり適切ではありませんSEO に優しい (理論) 上記)

次に、

users/page/1
ログイン後にコピー

の形式でページング リンクが必要になる場合があります。それでは、どうすればよいでしょうか?

これを実装するには 2 つの方法があります。

最初の方法は、前のプロジェクトで使用した、直接正規化です。

ブレード内で直接正規化するための余地があるはずです。

{!! preg_replace("~(/?)\?page=~", '/page/', $users->render()) !!}
ログイン後にコピー

を置き換える際の最適化。アドバイスをいただければ幸いです。

もちろん、対応するルーティングもそれに応じて設定する必要がありますが、非常に簡単なので、拡張しません。

このメソッドの効果は得られますが、実際には laravel のスタイルがありません。

laravel のスタイルとは何ですか?コンポーザー、パッケージ

それでは 2 番目の方法を紹介しましょう

laravel-paginateroute
ログイン後にコピー

使用方法は非常に簡単です。以下は Readme からの抜粋です。

最初のステップ

// 要注意对应版本,可到https://packagist.org 方便查看
composer require spatie/laravel-paginateroute
ログイン後にコピー

2 番目のステップ

登録、

// config/app.php
'providers' => [
    ...
    'Spatie\PaginateRoute\PaginateRouteServiceProvider',
];
'aliases' => [
    ...
    'PaginateRoute' => 'Spatie\PaginateRoute\PaginateRouteFacade',
];
ログイン後にコピー

3 番目のステップ

// app/Providers/RouteServiceProvider.php
use PaginateRoute;
// ...
public function boot(Router $router)
{
    PaginateRoute::registerMacros();
    parent::boot($router);
}
ログイン後にコピー

Use

ルーティングで

// app/Http/routes.php
// Generates /users & /users/page/{page}
Route::paginate('users', 'UsersController@index');
ログイン後にコピー

これにより2つのルートが生成されます

/users
/users/page/{page}
ログイン後にコピー

その後、コントローラー内で、laravelのページングに従って通常のように書くことができます

ページ内でこのように使用されます。これは、simplePaginate

@if(PaginateRoute::hasPreviousPage())
  <a href="{{ PaginateRoute::previousPageUrl() }}">Previous</a>
@endif
@if(PaginateRoute::hasNextPage($users))
  <a href="{{ PaginateRoute::nextPageUrl($users) }}">Next</a>
@endif
ログイン後にコピー

の対応する記述メソッドです。推奨: "laraveltutorial"

以上がLaravelページングSEOについての簡単な話の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート