2017-02-01 6 views
0

Ich muss meine Domain von http zu https umleiten. In meinem Zugang habe ich schon.301 Umleitung http zu https mit www

Dieses Snippet umleiten alles ohne "www" zu "www".

Wenn ich ändern, um dies zu

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] 

Das Ergebnis ist:

http://www.example.com/folder/page.php 

becomes 

Location => https://www.example.com/folder/page.php 

Fein!

https://example.com/folder/page.php 

becomes 

https://www.example.com/folder/page.php 

Fein!

aber:

http://example.com/folder/page.php 

becomes 

Location => https://example.com/folder/page.php 

aber es hat

Location => https://www.example.com/folder/page.php 

Wie ist es möglich, dieses Problem beheben sein?

Ich weiß, alle diese Umleitungen:

RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L] 

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

RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] 

aber ich brauche nur eine Umleitung anstelle von zwei 301

Antwort

0

können Sie verwenden, um die folgende Regel

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

löschen Browser-Cache bevor Sie das testen.

+0

danke für Ihre Hilfe. Dies gibt einen 500 Server Error, danke für die Beseitigung dieser – labu77

+0

Ok, Sie haben den 500 Server Fehler behoben, aber jetzt https://example.com/folder/page.php wird zu https://example.com – labu77

+0

@ Labu77 Bitte löschen Sie Ihre Browser-Caches und stellen Sie sicher, dass Sie keine anderen Redirect-Regeln haben. – starkeen

0

Ich habe hier eine Lösung gefunden:

https://webmasters.stackexchange.com/questions/84757/htaccess-redirect-non-www-to-www-with-ssl-https

Die zweite Antwort von @ w3dk arbeitet.

RewriteEngine On 
RewriteCond %{SERVER_PORT} !=443 [OR] 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] 

Ihre Website muss sowohl zugänglich sein von www und nicht-www über SSL für die .htaccess Umleitung auszulösen.

Mit letsencrypt ist es kein Problem, diese 2 Zertifikate zu haben.

+0

Es gibt keinen Unterschied zwischen meiner Antwort und der Antwort, die Sie mir gegeben haben. Bist du sicher, dass mein Code fehlgeschlagen ist? – starkeen

+0

Ja, ich habe es zweimal und jetzt noch einmal überprüft. Ihr Code hat eine Umleitung auf die Startseite vorgenommen. Danke. – labu77

+0

Es ist wirklich verkabelt. – starkeen

Verwandte Themen