2016-07-24 25 views
1

Wenn ich eine URL eintippe, wird automatisch ein Schrägstrich hinzugefügt.Nacheilender Schrägstrich automatisch in URL hinzugefügt

Warum?

Zum Beispiel habe ich ein:

example.com/path

und es wird:

example.com/path/


Meine .htaccess-Datei:

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

    AddType 'text/css; charset=UTF-8' css 

</IfModule> 
+0

Ja. Tatsächlich ist es das Verzeichnis public /, in dem sich die index.php befindet, die das gesamte Routing ausführt. – padawanTony

+1

Wenn Ihre URL auf ein Verzeichnis verweist, fügt Apache aus Sicherheitsgründen automatisch einen abschließenden Schrägstrich hinzu. – anubhava

+2

@anubhava Thx. Erstellen Sie besser eine richtige Antwort auf diese Frage (als einen Kommentar) und fügen Sie ein Zitat oder eine Quelle hinzu. – padawanTony

Antwort

0

Wenn Ihre URL auf ein Verzeichnis dann mod_dir Moduls Apache fügt automatisch einen Schrägstrich aus Sicherheitsgründen.

Apache mod_dir reference on directory slash

Bitte beachten Sie, dass Sie dieses Verhalten, indem diese Richtlinie ändern können:

DirectorySlash Off 

Bedenken Sie jedoch diese Sicherheitswarnung.

Sicherheitswarnung

die abschließenden Schrägstrich Umleitung ausschalten kann in einer Offenlegung von Informationen führen. Stellen Sie sich eine Situation vor, in der mod_autoindex aktiv ist (Options +Indexes) und DirectoryIndex auf eine gültige Ressource (z. B. index.html) festgelegt ist und für diese URL kein anderer spezieller Handler definiert ist. In diesem Fall würde eine Anfrage mit einem Schrägstrich die Datei index.html anzeigen. Aber eine Anfrage ohne abschließenden Schrägstrich listet den Verzeichnisinhalt auf.

0

zu einem hinteren entfernen Slash Sie nur verwenden können:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} (.+)/$ 
RewriteRule^%1 [R=301,L] 
+0

wo stelle ich seine in meinen .htaccess? – padawanTony