MENU
カタログクリップ
本ページはプロモーションを含みます。

LaravelでURL末尾のスラッシュを付ける方法。

2020 6/28
広告
コンピューター
2018年4月10日2020年6月28日

Laravelでは、URL末尾にスラッシュを付けてアクセスをすると、スラッシュなしURLへリダイレクトされます。

これを「スラッシュなしでアクセスした場合は、スラッシュ付きにリダイレクトする」ように変更する方法を紹介します。

 

このスラッシュはトレイリングスラッシュ(trailing slash)と呼ばれます。

この振る舞いは、.htaccessによって制御されていますので、public/.htaccessを書き換えます。

.htaccess

Before

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

#Redirect Trailing Slashesの部分で、

  • 指定されたディレクトリが存在せず(既存ディレクトリへのアクセスではなく)
  • 末尾がスラッシュで終わっている

場合に末尾のスラッシュを削除しています。

この部分をコメントアウトして、次のように追記します。

After

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    #RewriteCond %{REQUEST_FILENAME} !-d
    #RewriteCond %{REQUEST_URI} (.+)/$
    #RewriteRule ^ %1 [L,R=301]

    # Add Trailing Slash If Not A File...
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} (.+[^/])$
    RewriteRule ^ %1/ [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

# Add Trailing Slashの部分が追記した部分です。

  • 指定されたファイルが存在せず(既存ファイルへのアクセスではなく)
  • 末尾が/以外で終わっている

場合には、末尾にスラッシュをつけて301リダイレクトをします。

 

トレイリングスラッシュの有無を統一するためのリダイレクトに、301リダイレクトを使うことはGoogleの中の人が勧めている方法です。

 

以上、LaravelでURL末尾のスラッシュを付ける方法。でした。

 

コンピューター
highlightjs

関連記事

  • Archer BE550とArcher BE450の8つの違い [TP-Link Wi-Fi 7ルーター]
    2025年8月30日
  • Archer BE7200とArcher BE450の3つの違い [TP-Link Wi-Fiルーター]
    2025年8月30日
  • Archer BE3600とArcher BE220の2つの違い [TP-Link Wi-Fiルーター]
    2025年8月30日
  • G-PKB-002LNdとG-PKB-002LNの2つの違い [Logicool G キーボード]
    2025年8月30日
  • KX700GRdとKX700GRの4つの違い [ロジクール ワイヤレスキーボード]
    2025年8月30日
  • G-PPD-004WL-BKd と G-PPD-004WL-BKの2つの違い [Logicool ゲーミングマウス]
    2025年8月30日
  • SSD-CK1.0N4PLG3NとSSD-CK1.0N4PLG3Jの1つの違い [KIOXIA 内蔵SSD]
    2025年8月30日
  • KX700GRdとKX700GRの2つの違い [ロジクール キーボード]
    2025年8月30日
カテゴリー
  • コンピューター
    • gnuplot & eps
    • mac
    • matplotlib
    • wordpress
  • ホーム・家電
    • アイロン
    • オーディオ
    • オーラルケア
      • ジェットウォッシャー
      • 音波振動歯ブラシ
    • カメラ
    • カー用品
    • クリーナー
    • テレビ、レコーダー
    • ドアホン
    • メンズ美容家電
      • ラムダッシュ
    • ルンバ
    • 一覧比較
    • 工具
    • 浄水器
    • 温水洗浄便座
    • 炊飯器
    • 空気清浄機・加除湿機
    • 空調・季節家電
    • 美容家電
      • フェイスケア
      • ヘアケア
      • ボディーケア
    • 血圧計
    • 調理器具
    • 電子レンジ
  • 健康
  • 家事
    • パン
    • 料理
    • 育児
    • 食品
      • おせち
      • コーヒー
  • 書籍
  • 知識
  • 趣味
    • ペン字
    • ロードバイク・クロスバイク
    • 車
    • 鉄道模型
    • 電子工作
サイト内検索
最近の投稿
  • GR-W36SVとGR-W36SCの4つの違い [東芝 冷蔵庫]
  • NR-B18C2とNR-B18C1の違いは? [パナソニック 冷蔵庫]
  • MF-U12KとMF-U12Hの2つの違い [三菱電機 冷凍庫]
  • 東芝のGR-W15BZ1とGR-W15BSの3つの違い [東芝 冷蔵庫]
  • PM2.5グラフをhttpサーバで表示する。SPS30 + Raspberry pi pico 2 Wを使って。
  • MR-WZ55MとMR-WZ55Kの3つの違い [三菱電機 冷蔵庫]
  1. ホーム
  2. コンピューター
  3. LaravelでURL末尾のスラッシュを付ける方法。
  • ホーム
  • プライバシーポリシー

© カタログクリップ
contact@beiznotes.org

目次