


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!

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

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.

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

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.

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.

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

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

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


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

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

Dreamweaver Mac
Visuelle Webentwicklungstools

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
Einfach zu bedienender und kostenloser Code-Editor

Dreamweaver CS6
Visuelle Webentwicklungstools
