2017-06-04 11 views
1

私のための解決策が見つかりません。Apache:すべてのリクエストをhttps://www.domain.tldにリダイレクトします

ここ

私の設定:

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

# Redirect http to https 
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

ザ・各パーツは非常によくではなく、一緒に働きます。 httpsリダイレクトの部分は常にhttps://domain.tldにリダイレクトされるため、wwwは表示されません。無視されます。 誰かが解決策を知っていますか?

ありがとうございます。

答えて

0

WWWHTTPSを強制して、次のとおりです

RewriteEngine On 
RewriteCond %{HTTP_HOST}#%{HTTPS}s !^www\.([^#]+)#(?:off|on(s)) [NC] 
RewriteRule ^$ http%2://www.%1%{REQUEST_URI} [R=301,L] 

そうしないと、ルールを分離し、おそらくそれにこの方法することができ、ワンショットで両方を実行する必要があります。リライトがない場合

# Rewrite to WWW 
RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule ^(.*) https://www.%{SERVER_NAME}%{REQUEST_URI} [L,R=301] 

# Rewrite HTTP to HTTPS 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] 

non-wwwwwwの場合は、VirtualHost 301のリダイレクト先がおそらくサーバーに設定されている(おそらくhttpd.conf)...

のhttpd.conf

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

ことがhttpd.confに設定されている場合、それはwwwからnon-wwwため.htaccessにリライトを上書きすることができます。

+0

ありがとうございますが、動作しません。 – satriani

+0

「動作しません」とは何も説明していません...動作は何ですか? –

+0

'' http://domain.tld https://domain.tldとhttps://www.domain.tldはhttp:// www。/ '' '' http://www.domainにリダイレクトします。 - > 404ページが見つかりませんでした。 " – satriani

関連する問題