2016-12-29 7 views
0

Ich habe ein SSL-Zertifikat, und ich muss https auf meiner Website erzwingen. Außerdem muss ich nachfolgende Schrägstriche entfernen und die Erweiterung .php aus Dateien ausblenden.htaccess Hinteren Schrägstrich entfernen, HTTPS erzwingen, PHP-Erweiterung ausblenden

Das ist, was ich bisher, aber es verursacht zu viele Umleitungen:

RewriteEngine On 

RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

# Unless directory, remove trailing slash 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/$ https://hellorufus.com/$1 [R,L] 

# Redirect external .php requests to extensionless url 
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(.+)\.php$ https://hellorufus.com/$1 [R=301,L] 

# Resolve .php file for extensionless php urls 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

# 404 Error Template 
ErrorDocument 404 /404.html 

ich eine Reihe von ähnlichen Fragen gefunden haben, aber wenn ich versuche, sie für meine eigenen Bedürfnisse Stück zusammen, ich Am Ende wieder zu viele Weiterleitungen!

+0

Die permanente Umleitung zu https erfolgt am besten in einer vhost Datei wie: 'Redirect permanent/https: // www.example.com' ... getestet in Apache 2.4 debian und osx – YvesLeBorg

Antwort

1

Dies ist eine Version mit ein paar Korrekturen, die plausibel erscheinen:

RewriteEngine On 

RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA] 

# Unless directory, remove trailing slash 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/$ /$1 [R=302,L,QSA] 

# Redirect external .php requests to extensionless url 
RewriteRule ^(.+)\.php$ /$1 [R=301,L,QSA] 

# Resolve .php file for extensionless php urls 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([^\.]+)$ $1.php [L,QSA] 

# 404 Error Template 
ErrorDocument 404 /404.html 

nicht sicher, ob das bereits Ihr Problem löst. Um sicher zu gehen, würden wir eine bestimmte Anforderungs-URL benötigen, die eine endlose Rewrite-Schleife erzeugt.

Verwandte Themen