2016-08-10 5 views
1

私は常にwwwドメインプレフィックスを使用し、常にhttpsを使用したいと思うSilverStripeのウェブサイトを持っています。Director :: forceWWW()とDirector :: forceSSL()をSilverStripeで一緒に使用できますか?

だから:私は/app/_config.phpに以下の行を置くしかし

https://www.example.com 

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

私はリダイレクトループを取得

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

はすべてにリダイレクトします。私は順序を入れ替える場合、同じことが起こる:

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

これはDirector::forceWWW()Director::forceSSL()を一緒に使用することができないことを意味するのでしょうか?

希望の結果を得るためにはどのような設定を使用する必要がありますか?

+0

を、これはバグのように聞こえます私にはあなたはgithubでそれを報告すべきです。 – bummzack

答えて

3

forceWWW()forceSSL()は一緒に使うことはできません。

私たちのサイトには、我々はこれらの二つのリダイレクトを行うために私たちのルート.htaccessファイルにルールをリダイレクト追加することができますApacheサーバ上にある場合:私も `.htaccess`を使用することを好む一方で

# ... 

<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。同じWebサイト(例:example.comとexample.org)を指す複数のドメインを使用している場合は、SEOの方が優れています。 – bummzack

関連する問題