Rumah > pembangunan bahagian belakang > tutorial php > Cara mengalihkan url huruf besar ke huruf kecil dengan middleware laravel

Cara mengalihkan url huruf besar ke huruf kecil dengan middleware laravel

百草
Lepaskan: 2025-03-07 01:22:11
asal
489 orang telah melayarinya

How to Redirect Uppercase URLs to Lowercase with Laravel Middleware

Untuk mengoptimumkan pengoptimuman enjin carian (SEO), saya perlu mengalihkan semua permintaan yang mengandungi huruf besar kepada kesetaraan huruf kecil mereka minggu lepas.

Contoh:

源 URL 目标 URL
/location/Atlanta /location/atlanta
/docs/Laravel-Middleware /docs/laravel-middleware
Pada masa yang sama, penyelesaian ini tidak boleh mengubah mana -mana parameter pertanyaan:

Ternyata kita hanya perlu menulis beberapa baris kod di middleware Laravel untuk mencapainya! Pertama, kami mendapat jalan dari permintaan dan periksa sama ada ia sama dengan huruf kecil. Jika tidak sama, kita boleh menggunakan kaedah

源 URL 目标 URL
/locations/United-States?search=Georgia /location/united-states?search=Georgia
untuk menambahkan rentetan pertanyaan kembali ke versi huruf kecil dan mengalihkannya ke laluan huruf kecil secara kekal.

url()->query() Untuk mendaftarkan middleware dalam aplikasi Laravel 11, saya melampirkannya ke kumpulan middleware

dalam fail
<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class RedirectUppercase
{
    /**
     * 处理传入请求。
     *
     * @param  \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response)  $next
     */
    public function handle(Request $request, Closure $next): Response
    {
        $path = $request->path();

        if (($lower = strtolower($path)) !== $path) {
            $url = url()->to($lower)->appendQuery($request->query()); // 使用更简洁的链式调用

            return redirect($url, 301);
        }

        return $next($request);
    }
}
Salin selepas log masuk
.

bootstrap/app.php web

Nota: Anda mungkin perlu mengecualikan middleware ini dari laluan menggunakan URL yang ditandatangani atau kes penggunaan sensitif kes yang lain.
<?php

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        // ...
    )
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->appendToGroup('web', \App\Http\Middleware\RedirectUppercase::class);
    });
Salin selepas log masuk

Saya pasti ia boleh dilakukan dengan Nginx atau Apache, tetapi ini adalah penyelesaian yang paling mudah, dan ia berfungsi untuk semua persekitaran aplikasi anda. Saya tidak perlu ingat untuk membuat sebarang perubahan pada pelayan baru.

Atas ialah kandungan terperinci Cara mengalihkan url huruf besar ke huruf kecil dengan middleware laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan