it-swarm.dev

Wie kann ich mit .htaccess die Groß- und Kleinschreibung von Apache ignorieren?

Ich bin kürzlich von IIS zu Apache gewechselt und leider haben einige meiner Links Probleme mit der Großschreibung. Ich habe einige Leute gesehen, die über das Umschreiben von URLs in Klein- oder Großbuchstaben gesprochen haben, aber ich brauche etwas, um nur die Groß- und Kleinschreibung von Apache zu ignorieren. Ist das mit .htaccess machbar?

16
user1397143

hinzufügen

CheckSpelling on

in Ihre .htaccess-Datei natürlich nach dem Aktivieren der RewriteEngine

so wird der endgültige Code sein

RewriteEngine on
CheckSpelling on

Ich denke, es ist der beste und sicherste Weg.

vergiss nicht, dich zu ändern

AllowOverride none

zu

AllowOverride All

in Ihrer httpd.conf-Datei, damit die .htaccess-Dateien ordnungsgemäß funktionieren können.

13
iEmad

Wenn CheckSpelling für Sie nicht funktioniert und Sie PHP verwenden, können Sie auf Ihrer 404-Seite eine PHP-Weiterleitung hinzufügen, um die Kleinbuchstabenversion der URL weiterzuleiten. Fügen Sie Ihrer .htaccess-Datei den folgenden Code hinzu, wenn Sie dies noch nicht getan haben (Sie können die Datei auch anders als 404.php aufrufen, wenn Sie möchten, aber es muss ein PHP Datei):

ErrorDocument 404 /404.php

Fügen Sie dann den folgenden Code am Anfang von 404.php hinzu (wenn Sie HTTPS verwenden, ändern Sie http:// in https:// in der zweiten Zeile):

if(preg_match("/[A-Z]/", $_SERVER["REQUEST_URI"])){
    header("location:http://" . $_SERVER["HTTP_Host"] . strtolower($_SERVER["REQUEST_URI"]));
    exit();
}

Dieser Code verwendet eine einfache Regex, um zu überprüfen, ob der angeforderte URI Großbuchstaben enthält. Wenn dies der Fall ist, wird er auf dieselbe Seite umgeleitet, jedoch mit Kleinbuchstaben.

0
Donald Duck