suchen
HeimBackend-EntwicklungPHP-TutorialWie man Großbuchstaben mit Laravel Middleware in Kleinbuchstaben umleiten

How to Redirect Uppercase URLs to Lowercase with Laravel Middleware

Um die Suchmaschinenoptimierung (SEO) zu optimieren, musste ich letzte Woche alle Anfragen mit Großbuchstaben in ihre Kleinbuchstaben -Äquivalente umleiten.

Beispiel:

源 URL 目标 URL
/location/Atlanta /location/atlanta
/docs/Laravel-Middleware /docs/laravel-middleware

Gleichzeitig sollte diese Lösung keine Abfrageparameter ändern:

源 URL 目标 URL
/locations/United-States?search=Georgia /location/united-states?search=Georgia

Es stellt sich heraus, dass wir nur ein paar Codezeilen in die Laravel Middleware schreiben müssen, um dies zu erreichen! Zunächst erhalten wir den Pfad aus der Anfrage und prüfen, ob er in Kleinbuchstaben gleich ist. Wenn es nicht dasselbe ist, können wir die url()->query() -Methode verwenden, um die Abfragezeichenfolge wieder an die Kleinbuchstabenversion des Pfades anzuhängen und sie dauerhaft auf den Kleinbuchstaben umzuleiten.

<?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);
    }
}

Um die Middleware in der Laravel 11 -Anwendung zu registrieren, habe ich sie der bootstrap/app.php Middleware -Gruppe in der Datei web angeschlossen.

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

Hinweis: Möglicherweise müssen Sie diese Middleware mit einer signierten URL oder anderen Fall-sensitiven Anwendungsfällen von Routen ausschließen.

Ich bin mir sicher, dass es mit Nginx oder Apache erfolgen kann, aber dies ist bei weitem die einfachste Lösung, und es funktioniert für alle Umgebungen Ihrer Anwendung. Ich muss mich nicht daran erinnern, Änderungen am neuen Server vorzunehmen.

Das obige ist der detaillierte Inhalt vonWie man Großbuchstaben mit Laravel Middleware in Kleinbuchstaben umleiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Was ist Abhängigkeitsinjektion in PHP?Was ist Abhängigkeitsinjektion in PHP?May 07, 2025 pm 03:09 PM

AbhängigkeitsinjektionInphpisadelPatternThatenhancesFlexibilität, Testbarkeit und MaschinenbarkeitbyprovidexternaldePendenclasses.itallowsforlocoppling, EaserTesting Throughmocking und Modulardesign, ButrequiresfulstructionoVoidover-In-Inje-Inje-Inje

Beste PHP -LeistungsoptimierungstechnikenBeste PHP -LeistungsoptimierungstechnikenMay 07, 2025 pm 03:05 PM

Die PHP -Leistungsoptimierung kann in den folgenden Schritten erreicht werden: 1) Verwenden Sie Request_once oder include_once oben im Skript, um die Anzahl der Dateilasten zu reduzieren. 2) Verwenden Sie Vorverarbeitungsanweisungen und Stapelverarbeitung, um die Anzahl der Datenbankabfragen zu verringern. 3) Opcache für Opcode -Cache konfigurieren; 4) Aktivieren und Konfigurieren von PHP-FPM-Optimierungsprozessmanagement; 5) Verwenden Sie CDN, um statische Ressourcen zu verteilen. 6) XDEBUG oder Blackfire für die Code -Leistungsanalyse verwenden. 7) Wählen Sie effiziente Datenstrukturen wie Arrays; 8) Schreiben Sie den modularen Code für die Optimierungsausführung.

PHP -Leistungsoptimierung: Verwenden von Opcode -CachingPHP -Leistungsoptimierung: Verwenden von Opcode -CachingMay 07, 2025 pm 02:49 PM

OpcodecachingsidesignifictimProvePhpperformanceByCachingCompiledCode, reduziererverladung und responsetimes.1) itStoresCompiledPhpCodeInmemory, BypassingParsingandCompiling.2) useopcacheBysetingParameterphp.ini, LikeemoryConsumnitlimits

PHP -Abhängigkeitsinjektion: Wartbarkeit des Codes steigernPHP -Abhängigkeitsinjektion: Wartbarkeit des Codes steigernMay 07, 2025 pm 02:37 PM

Die Abhängigkeitsinjektion liefert Objektabhängigkeiten durch externe Injektion in PHP, wodurch die Wartbarkeit und Flexibilität des Codes verbessert wird. Zu den Implementierungsmethoden gehören: 1. Konstruktorinjektion, 2. Werteinspritzung, 3. Schnittstelleninjektion. Die Verwendung der Abhängigkeitsinjektion kann entkoppeln, die Testbarkeit und Flexibilität verbessern, aber der Möglichkeit einer Steigerung der Komplexität und der Leistungsaufwand gelegt werden.

So implementieren Sie die Abhängigkeitsinjektion in PHPSo implementieren Sie die Abhängigkeitsinjektion in PHPMay 07, 2025 pm 02:33 PM

Die Implementierung der Abhängigkeitsinjektion (DI) in PHP kann durch manuelle Injektion oder Verwendung von DI -Behältern erfolgen. 1) Manuelle Injektion führt Abhängigkeiten über Konstruktoren wie die injizierende Logger der Userservice -Klasse. 2) Verwenden Sie DI -Container, um Abhängigkeiten wie die Containerklasse automatisch zu verwalten, um Logger und Userservice zu verwalten. Durch die Implementierung von DI kann die Flexibilität und Testbarkeit der Code verbessern.

Was ist der Unterschied zwischen UnSet () und Session_Destroy ()?Was ist der Unterschied zwischen UnSet () und Session_Destroy ()?May 04, 2025 am 12:19 AM

ThedifferencebetweenUnset () undsesion_destroy () isHatunset () clearsSesionSessionVariables whilepingTheSessionActive, whire eassession_destroy () terminatesthectheentireSession.1) UseUnset () toremovespecificSessionvariables ohnemacht

Was sind klebrige Sitzungen (Sitzungsaffinität) im Kontext des Lastausgleichs?Was sind klebrige Sitzungen (Sitzungsaffinität) im Kontext des Lastausgleichs?May 04, 2025 am 12:16 AM

StickySessionSesionSureSerRequestSareroutedTothesamerverForSessionDataconsistency.1) SessionidentificationSignSuServerSuSuSuSingCookieSorUrlmodificificificifications.2) KonsistentroutingDirectsSubsequestRequestTothSameServer.3) LastbalancedistributeNeNewuser

Was sind die verschiedenen Sitzungsspeicher -Handler in PHP verfügbar?Was sind die verschiedenen Sitzungsspeicher -Handler in PHP verfügbar?May 04, 2025 am 12:14 AM

PhpoffersVariousSsionsAVEHandlers: 1) Dateien: Standard, SimpleButMayBottleneckonHigh-Trafficsites.2) Memcached: Hochleistungs-Ideforspeed-kritische Anpassungen.3) Redis: Similartomemez, withaddedPersi.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools