【Laravel】URLのwwwありをwwwなしに統一する方法!リダイレクトミドルウェア

この記事からわかること
- LaravelでURLのwwwありをwwwなしに統一する方法
- ミドルウェアの実装方法
- .htaccessでは動作しない?
\ アプリをリリースしました /
環境
- Laravel:8.83.27
- Laravel Installer:4.2.9
- PHP(MAMP): 8.0.8
- macOS:Sonoma 14.1
LaravelでURLをwwwあり→wwwなしにリダイレクトさせる方法
Laravelプロジェクトでは何も設定をしないとURLがwwwあり/なしでも動作するようになっていました。これでは同じページを表示するのにURLが2つになってしまってGoogleの評価も下がってしまうので正規化する必要があります。
.htaccessでは動作しなかった
URLの正規化をする方法として.htaccess
でリダイレクト処理を実装して設置する方法が一般的ですが、私のLaravelプロジェクトではうまく動作しませんでした。
wwwなしに統一するコード
このコードを追加した.htaccess
をLaravelプロジェクトのルートやpublic
直下などに設定してみましたが、リダイレクトが正常に動作しませんでした。
ミドルウェアを実装して解決
URLをwwwあり→wwwなしにリダイレクトさせる解決策は専用のミドルウェアを作成し、アクセスされる際にwwwがある場合にLaravelでリダイレクトさせる方法です。まずはartisan
コマンドでミドルウェアクラスを追加します。
作成されたミドルウェアの中身を以下のように変更します。
ミドルウェアを追加したのでKernel.php
に追加して完了です。
これでwwwあり→wwwなしにリダイレクトさせることができているはずです。うまく動作しない場合はキャッシュを削除してみてください。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。