htaccess code, um die Erweiterung zu entfernen und + den nachfolgenden Schrägstrich zu erzwingen?

8

Ich versuche, einen Code für htaccess zusammenzustellen, der example.com/filename.php in example.com/filename / umwandelt (und den Schrägstrich erzwingt). - Ich habe verschiedene Ansätze ausprobiert, aber jede hat nicht ganz richtig funktioniert, von 500 Fehlern in Unterordnern bis zu Problemen mit dem Schrägstrich, usw. ...

Bitte helfen Sie!

    
Gumbo 01.07.2009, 11:25
quelle

6 Antworten

13

Versuchen Sie Folgendes:

%Vor%

Die erste Regel leitet Anfragen von /foo/bar .php extern zu /foo/bar / um. Und die zweite Regel schreibt Anfragen von /foo/bar / intern zu /foo/bar .php .

um

Und um den folgenden Schrägstrich zu erzwingen, versuche diese Regel:

%Vor%     
Gumbo 01.07.2009 16:01
quelle
6

Diese Lösung von Gumbo funktioniert hervorragend für Dateien, aber es funktioniert nicht mit Verzeichnissen. Mit anderen Worten:

Für mysite.com/file1.php wird mysite.com/file1/ angezeigt, was großartig ist. Es funktioniert jedoch nicht gut für Verzeichnisse. Wenn ich versuche, auf das folgende Verzeichnis zuzugreifen (das die index.php-Datei enthält), zeigt mysite.com/dir1 anstelle des Inhalts von http:/mysite.com/dir1/index.php und der URL: mysite.com/dir1/ 404 an.

Meine Lösung war:

%Vor%

Mit anderen Worten, nichts zu tun, wenn es ein Verzeichnis ist.

Ich hoffe, es hilft.

Ein weiteres Problem mit der ursprünglichen Lösung ist, dass css und die Bilder nicht geladen werden, bis ich den Pfad zur CSS-Datei und den Bildern zum absoluten Pfad ändere.

Gibt es eine andere Möglichkeit, es zu lösen, anstatt alle Pfade in allen Dateien der Website auf absolut zu setzen.

Vielen Dank.

    
Vadim 22.09.2009 05:02
quelle
2
%Vor%

Funktioniert wie ein Zauber - danke für die Hilfe Leute.

    
Jono Alderson 01.07.2009 12:39
quelle
0

Sie könnten versuchen, die Frage hier zu bearbeiten. Während die Lösung für die Frage nicht relevant ist (noch ...), bietet die Frage selbst eine Reihe von Rewrite-Regeln, die Sie möglicherweise in Ihrer eigenen Site verwenden können.

Wenn Sie Symbole in URLs benötigen, können Sie einfach ". *" anstatt des spezifischen A-Za-z0-9 verwenden, aber wenn Sie nach einem möglichen Schrägstrich suchen, können Sie ". *?" verwenden. stattdessen. Dies ist eine standardmäßige Funktion für reguläre Ausdrücke, um die Gierigkeit von ". *" Zu vermeiden.

    
Matthew Iselin 01.07.2009 12:22
quelle
0

Für den Pfad können Sie <base href="yourpath" /> zu Ihren PHP-Seiten hinzufügen.

    
Gentiltoutou 15.11.2009 20:01
quelle
0

Versuchen Sie dies, das funktioniert auf meinem Apache, auch wenn Sie manuell den letzten Schrägstrich entfernen:

%Vor%     
szmegma 26.08.2013 15:05
quelle