2016-09-09 1 views
1

Ich möchte einen Schrägstrich auf alle URLs mit Ausnahme von Dateinamen erzwingen. Hier ist meine .htaccess Datei so weit.So erzwingen Sie Schrägstrich für alles außer EXCEPT-Dateinamen mit htaccess

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)(.+) [OR] 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(www\.)?(.+) 
RewriteRule^https://%2%{REQUEST_URI} [R=301,L] 

RewriteCond %{THE_REQUEST} ^.*/index\.php 
RewriteRule ^(.*)index.php$ /$1 [R=301,L] 

Antwort

0

Einfach, überprüfen Sie die Bedingung, dass die angeforderte Datei nicht existiert, und umleiten:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^.*$ /$0/ [R=301,L,QSA] 

Beachten Sie, dass der oben genannte Regelsatz kurz vor Ihren THE_REQUEST Check gehen.

+0

Vielen Dank für Ihre Antwort. ... lief in ein Problem Wenn ich auf: https://example.com/directory/index.php Es Umleitungen an: https://example.com/directory // (extra Strich) Jeder Weg, das zu verhindern? – user3424298

0

Haben Sie Ihre .htaccess wie folgt aus:

RewriteEngine On 

# this rule will do 3 things: http->https, www removal, add a trailing slash 
RewriteCond %{HTTP_HOST} ^www\. [NC,OR] 
RewriteCond %{REQUEST_URI} !/$ [OR] 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule ^(.*?)/?$ https://%1/$1/ [R=301,L,NE] 

RewriteCond %{THE_REQUEST} /index\.php [NC] 
RewriteRule ^(.*)index\.php$ /$1 [R=301,L,NE,NC] 
+0

@ user3424298: Hat das für Sie funktioniert? – anubhava

Verwandte Themen