Contoh:
Pada masa yang sama, penyelesaian ini tidak boleh mengubah mana -mana parameter pertanyaan:
源 URL
目标 URL
/location/Atlanta
/location/atlanta
/docs/Laravel-Middleware
/docs/laravel-middleware
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 |
url()->query()
Untuk mendaftarkan middleware dalam aplikasi Laravel 11, saya melampirkannya ke kumpulan middleware
<?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); } }
bootstrap/app.php
web
<?php return Application::configure(basePath: dirname(__DIR__)) ->withRouting( // ... ) ->withMiddleware(function (Middleware $middleware) { $middleware->appendToGroup('web', \App\Http\Middleware\RedirectUppercase::class); });
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!