1

ここでの質問から次のコードを抽出しました ( enforce www and Trailing slash with mod_rewrite htaccess on a multi-domain site ) およびapache.orgから直接。

このシナリオは、次の 3 つの要件で構成されています。

  1. 本番ドメインが常に www で始まることを確認してください。
  2. www を追加しないでください。beta.domain.tld、dev.domain.tld、mobile.domain.tld へ
  3. 最後に、すべての URL が https に書き換えられることを確認します。

以下の条件を思いつきました。

# Enforce www, if no subdomain is given
RewriteCond %{HTTP_HOST} !^(beta|dev|mobile|www)\.
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI}/ [R]

# Enfore SSL for all Domains
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

上記のルールは期待どおりに機能しますが、1 つのケースでは機能しません

https://domain.tld/がhttps://www.domain.tld/に正しくリダイレ​​クトされない

誰かがこれで私を助けることができますか?

4

1 に答える 1

2

2 つのコードを次のコードに置き換えてみてください。

RewriteCond %{HTTP_HOST} !^(?:beta|dev|mobile|www)\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=302,L]

RewriteCond %{HTTPS} =off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
于 2013-06-28T13:58:14.190 に答える