2016-08-10 3 views
1

Ich habe eine SilverStripe-Website, die ich immer das www Domain-Präfix verwenden und immer https verwenden möchte.Können Director :: forceWWW() und Director :: forceSSL() zusammen in SilverStripe verwendet werden?

So:

http://example.com 
http://www.example.com 
https://example.com 

Würden alle umleiten zu:

https://www.example.com 

Allerdings, wenn ich die folgenden Zeilen in /app/_config.php setzen:

Director::forceWWW(); 
Director::forceSSL(); 

ich eine Umleitung Schleife bekommen. Das gleiche passiert, wenn ich die Reihenfolge tauschen:

Director::forceSSL(); 
Director::forceWWW(); 

Bedeutet dies, dass Director::forceWWW() und Director::forceSSL() können nicht zusammen verwendet werden?

Welche Konfiguration sollte ich verwenden, um mein gewünschtes Ergebnis zu erhalten?

+0

Während ich am liebsten auch verwenden '.htaccess', das klingt wie ein Bug zu mir und du solltest es auf github melden. – bummzack

Antwort

3

Ich denke, Sie haben Recht, dass forceWWW() und forceSSL() nicht zusammen verwendet werden können.

Wenn unsere Website auf einem Apache-Server ist, können wir .htaccess Datei umleiten Regeln zu unserer Wurzel fügen diese beiden Umleitungen zu tun:

# ... 

<IfModule mod_rewrite.c> 
    SetEnv HTTP_MOD_REWRITE On 
    RewriteEngine On 

    # Redirect non www to www 
    RewriteCond %{HTTP_HOST} ^example\.com$ [NC] 
    RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] 

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

    # ... 
+1

+1. Dies ist auch besser für SEO, wenn Sie mehrere Domains verwenden, die auf dieselbe Website verweisen (z. B. "example.com" und "example.org"), da das Umschreiben eine einzelne Domain erzwingt. – bummzack

Verwandte Themen