2017-06-25 7 views
1

Ich möchte http zu https festlegen. Wenn ich jedoch auf https zugreife, geht es zu viel umleiten.opencart htaccess zu viele redirect

Im Folgenden finden Sie meine Regeln: -

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$ 
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$ 
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$ 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 


RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] 
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] 
#NEW REWRITE RULES 
RewriteRule ^contact/?$ index.php?route=information/contact [L] #Contact Page 
#END NEW REWRITE RULES 
RewriteRule ^download/(.*) /index.php?route=error/not_found [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) 
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] 

Die gleiche Codierung funktioniert gut in meiner cPanel Website. Aber wenn ich auf einen anderen Server (VPS) umschalte, funktioniert es einfach nicht.

Wenn ich über http://www.example.com zugreifen wird es auf https://www.example.com umleiten, aber dann wird der nächste Fehler zu viele Umleitung sein.

Wenn ich

#RewriteCond %{SERVER_PORT} 80 
#RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$ 
#RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$ 
#RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$ 
#RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 

dann kommentiert wird es funktionieren normalerweise in HTTPS, total keine Ahnung ...

Ich kann nicht verstehen, warum es die unendliche Schleife Bedingung erfüllt. http://htaccess.mwl.be?share=e7301d40-f5c3-5476-aa44-de304a066bf6

Apache-Version: 2.4.23-0ubuntu1

PHP: 7.0.20

+0

Apache Version: 2.4.23-0ubuntu1 PHP: 7.0.20 – Shiro

+0

immer noch die gleichen ERR_TOO_MANY_REDIRECTS ' RewriteCond% {REQUEST_SCHEME} = http RewriteCond% {ANFORDERN_URI}! ^/[0-9] + \ .. + \. Cpaneldcv $ RewriteCond% {REQUEST_URI}! ^/[A-F0-9] {32} \ .txt (?: \ Comodo \ DCV)? $ RewriteCond% {REQUEST_URI}! ^/\. wohlbekannt/acme-challenge/[0-9a-zA-Z _-] + $ RewriteRule^(. *) $ https://dg.sakunsilk.com/$1 [R, L] ' Ich schließe Inkognito-Modus und öffne es mit neuer Sitzung in Inkognito, immer noch zu viele Redirect – Shiro

Antwort

1

Ändern Sie Ihre erste Regel dazu:

RewriteCond %{REQUEST_SCHEME} =http 
RewriteCond %{THE_REQUEST} !/[0-9]+\..+\.cpaneldcv [NC] 
RewriteCond %{THE_REQUEST} !/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)? [NC] 
RewriteCond %{THE_REQUEST} !/\.well-known/acme-challenge/[\w-]+ [NC] 
RewriteRule^https://%{HTTP_HOST%{REQUEST_URI} [R,L,NE] 

ersetzen %{REQUEST_URI} durch %{THE_REQUEST} als REQUEST_URI wird in Ihrer letzten Regel auf index.php geändert und löst somit Ihre aus erste Regel wieder.

Wenn Sie einen Proxy verwenden, dann müssen Sie diese Bedingung als auch hinzufügen:

RewriteCond %{HTTP:X-Forwarded-SSL} =off