Sprache:

Suche

index.php aus der URL in Laravel entfernen

  • Teilen:
index.php aus der URL in Laravel entfernen

Eine der URLs auf dieser Website lautet:

https://thewebtier.com/articles

Es scheint jedoch, dass die folgende URL ebenfalls funktioniert:

https://thewebtier.com/index.php/articles

Ähnliche Probleme gibt es auch bei der Haupt-Website-URL.

Die Standard-Url ist:

https://thewebtier.com

Aber auch die folgenden URLs werden funktionieren:

https://thewebtier.com/index.php

und

https://thewebtier.com/index.php?anything

Diese Situation kann dazu führen, dass die Konkurrenz Urls für diese unerwünschten Urls mit index.und Suchmaschinen werden doppelte URLs für unsere gesamte Website sehen und schließlich wissen wir nicht, welche URLs in Suchmaschinen angezeigt werden (die ohne index.php oder die mit ihr).

In diesem kurzen Lernprogramm werden wir uns die Optionen und Möglichkeiten zum Entfernen von index.php aus der URL in Laravel.

1. public/index.php

Die schnellste Lösung ist, den folgenden Code in Ihre public/index.php Datei.

Lesen Sie auch: Laravel-App in der Produktion bereitstellen

/*
 * --------------------------------------------------------------------
 * REMOVE index.php from URI
 * --------------------------------------------------------------------
 */
if (strpos($_SERVER['REQUEST_URI'],'index.php') !== FALSE )
{
    $new_uri = preg_replace('#index\.php\/?#', '', $_SERVER['REQUEST_URI']);
    header('Location: '.$new_uri, TRUE, 301);
    die();
}

2. RouteServiceProvider.php

Eine andere Methode ist die Suche nach der Route in RouteServiceProvider.php und leiten Sie eine Umleitung ein.

protected function removeIndexFromUrl()
    {
        if (Str::contains(request()->getRequestUri(), '/index.php/')) {
            $url = str_replace('index.php/', '', request()->getRequestUri());

            if (strlen($url) > 0) {
                header("Location: $url", true, 301);
                exit;
            }
        }
    }

und registrieren Sie die Methode innerhalb von boot() Methode.

Lesen Sie auch: Lokalisierung in Laravel

3. Umleitung mit Nginx

Wenn Ihre Website auf Nginx läuft, können Sie die Umleitung auch mit einfachen Konfigurationen in Ihrer Nginx-Konfiguration vornehmen.

if ($request_uri ~* "^/index\.php(/?)(.*)") {
    return 301 $2;
}

4. Umleitung mit Apache

Wenn Ihre Website auf einem Apache-Server läuft, fügen Sie einfach den folgenden Code in public/.htaccess datei.

 

Lesen Sie auch: Eine bis viele polymorphe Beziehung in Laravel

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Redirect if index.php is in the URL
    RewriteRule ^index.php/(.+) /$1 [R=301,L]
</IfModule>

Teilen Sie uns in den Kommentaren unten mit, ob Sie Fragen haben.

Lesen Sie auch: Warum ist Laravel das beste PHP-Framework?

Usama Muneer

Usama Muneer

A web enthusiastic, self-motivated & detail-oriented professional Full-Stack Web Developer from Karachi, Pakistan with experience in developing applications using JavaScript, WordPress & Laravel specifically. Loves to write on different web technologies with an equally useful skill to make some sense out of it.