Ich arbeite mit einem Framework namens SilverStripe ... wir sind gerade dabei, eine alte Site auf dieses Framework zu migrieren. Das Problem ist, dass die alten Site-URLs mit .php oder .html enden, während sie in der neuen Site nicht vorhanden sind.
Ich muss die zweite Rewrite-Regel so anpassen, dass ich die Anfrage ohne irgendwelche .html- oder .php-Erweiterungen in die main.php pumpen kann.
In meinem aktuellen .htaccess habe ich die folgenden Regeln:
%Vor%
Mögliche Lösung (noch testen):
%Vor% Fügen Sie Ihrer .htaccess
-Datei unterhalb des # Deny access to potentially sensitive files and folders
-Blocks der Regeln die folgenden Regeln hinzu:
Die ersten zwei Zeilen überprüfen, dass die URL kein Verzeichnis ist und keine Datei ist.
Die dritte Zeile prüft, ob die URL .html
oder .php
enthält.
Die vierte Zeile entfernt .html
/ .php
von der URL
Hier ist eine kurze Lösung für das Problem
Versuchen Sie die folgende Regel:
%Vor%Dies wird umschreiben
%Vor%bis
%Vor%Muster erklärt:
^ ([^.] +). (html | php) $ stimmt mit allen Anfragen überein, die mit beliebigen Zeichen beginnen, mit Ausnahme von Punkt gefolgt von einem Liter-Punkt-Zeichen gefolgt von Literal PHP oder HTML am Ende von die URI.
Hinweis: Dies sollte die erste Regel in Ihrem htaccess vor allen anderen Regeln sein.
Probieren Sie diesen Code: -
%Vor%Ich hoffe, dass dieser Code für Sie funktioniert:)
Was ist mit den grundlegenden ...
%Vor%BEARBEITEN Nun haben Sie erwähnt, dass Sie Hunderte davon haben ... die obige Antwort ist immer noch gültig, da Sie Hunderte von diesen zum htaccess hinzufügen können (ich habe es schon oft gesehen) ... aber es ist sehr möglich, auch so ...
%Vor%Der Nachteil, dass Sie Zeile für Zeile nicht tun, ist jetzt, dass Sie vielleicht eine bestimmte HTML-Datei haben, auf die Sie noch Zugriff haben wollen und die als Ausnahme zu dieser Regel hinzugefügt werden muss.
Tags und Links .htaccess silverstripe