2016-11-24 2 views
1

versuchen https zu gehen, aber wenn ich die folgende Verwendung in meinem .htaccess ich umleiten Problem Fehlerfalsche Umleitung von HTTP auf HTTPS

hier ist, was ich habe in meinem .htaccess

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP} on [OR] 
RewriteCond %{HTTP:X-Forwarded-Proto} https [OR] 
RewriteCond %{SERVER_PORT} ^80$ 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 

#Uncomment lines below when uploading to the live server 
RewriteCond %{HTTP_HOST} !^(www\.)example\.com$ [NC] 
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^.*$ index.php [QSA,L,NC] 

#Uncomment lines below when uploading to the live server 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^https://(www\.)?example.com/.*$ [NC] 
RewriteRule \.(gif|jpg|png|tif|js|css|xls|xlsx|zip|rar|pdf|ods|ots)$ - [F] 

Bitte helfen

+0

Wenn Sie können, denken Sie bitte über Ihren Ansatz beim Definieren von Weiterleitungen nach, wenn Sie die Verwendung von .htaccess vermeiden und das meiste davon in virtualhsot noch besser definieren können. Meistens beinhaltet eine Umleitung zu ssl die Definition der entsprechenden virtuellen Hosts und einen einfachen Redirect/https: // hostname /, der request_filename überprüft, um dann zu index.php zu gehen, kann für eine einzelne Fallbackressource-Direktive entfernt werden, etc ... –

Antwort

1

Ihre erste Regel hat viele fehlerhafte [OR] Bedingungen und das verursacht Redirect-Schleife.

Ändern Sie Ihre erste Regel dazu:

RewriteCond %{HTTP_HOST} !^www\. [NC,OR] 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule^https://www.%1%{REQUEST_URI} [R=302,L,NE] 

Und Test nach dem Browser-Cache zu löschen.

+1

Danke, es sieht so aus, als ob es mein Problem löst. – AlexB

Verwandte Themen