2017-08-15 6 views
0

Ich möchte den gesamten Datenverkehr von allen Formen von meiner URL umleiten zu https ohne wwwApache www HTTPS Redirect

ich auf einem anderen Beitrag diesen Code gefunden zu gehen und es funktioniert für https perfekt, aber es fügt www

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule .* https://www.example.com%{REQUEST_URI} [R=301,L] 


RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

ich versuchte, das www vom ersten RewriteRule Entfernen oben, aber es leitet noch zu www

Alle Ideen, was ich kann die Umleitung erhalten ändern https zu gehen, ohne die www

Antwort

0

Die Verwendung von .htaccess für Weiterleitungen ist jetzt eine veraltete Möglichkeit, Anforderungen wie diese umzuleiten, according to apache. Stattdessen sollten Sie Redirect in Ihrer vhost-Datei verwenden:

Redirect "/" " https://example.com/ "

+0

Möchten Sie dies näher erläutern? Was genau ist eine vhost-Datei? Ich benutze 1and1 Shared Hosting, wenn das hilft. Sie gaben mir diesen genauen Code nicht von oben, aber gaben mir diese RewriteEngine On RewriteCond% {HTTP_HOST}^Beispiel.com [NC] RewriteRule^(. *) $ Https://www.example.com [L , R = 301] – cjenkins08

+1

Entschuldigung, ich hatte den Eindruck, dass Sie Zugriff auf die Apache-Konfigurationsdateien hatten. In dem Fall, in dem Sie dies nicht tun, müssen Sie es basierend auf .htaccess-Weiterleitungen tun. Bitte beachten Sie die Antwort von @Lag. –

0

Dies ist aus zwei Gründen geschehen.

  1. In Ihrem ersten Satz von Regeln, ich ist zu www Umleitung, so nur, dass dies ändern:

    RewriteRule ^(.*)$ https://example.com%{REQUEST_URI} [R=301,L] 
    
  2. Ihr zweiter Satz von Regeln tatsächlich prüft, ob www nicht eingeschaltet ist, und wenn es dann nicht zu zwingen ist, www. Ändern Sie, dass die Regel auf die folgenden:

    RewriteCond %{HTTP_HOST} ^www\. 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
    

So die oben nun überprüft, ob www auf - wenn es ist, dann wird es sie entfernen.

Sie können jedoch kombinieren diese beiden Regeln, anstatt sie seperate mit:

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

Stellen Sie sicher, löschen Sie den Cache, bevor diese zu testen.

+0

Ich habe die Änderungen in den Schritten 1 und 2 vorgenommen und einen Fall gefunden, in dem es nicht umgeleitet wird. Stattdessen wird die Fehlermeldung "Die Seite leitet nicht richtig umgeleitet" angezeigt, und die URL wird als https www eingegeben. – cjenkins08

+0

Ich habe den obigen Code leicht überarbeitet. Probieren Sie es jetzt. Hast du noch etwas in deinem '.htaccess', oder ist es das? – Lag

+0

Wie kann ich bei einem Kommentar Zeilenumbrüche hinzufügen? Ich habe auch diese ExpiresActive auf ExpiresDefault "Zugriff plus 1 Sekunden" cjenkins08

Verwandte Themen