0

.htaccess を使用して、すべてのリクエスト (サブドメインを除く) を HTTP から HTTPS にリダイレクトしています。このコードは私にとってはうまく機能します:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !=m.example.com
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

ただし、ユーザーが HTTPS を使用して手動でサブドメインにアクセスしようとするのを防ぐことはできません (私が持っている SSL はサブドメインをカバーしておらず、サブドメインに使用すると信頼エラーが表示されます)。

今、私は疑問に思っています:

1-サブドメインへのすべての HTTPS リクエストを HTTP にリダイレクトするにはどうすればよいですか?

2-このコードを変更して、サブドメインの制限を他のサブドメイン (m.example.com だけでなく) に動的に適用するにはどうすればよいですか?

4

1 に答える 1

1

1)証明書にm.example.comが含まれていない場合、ブラウザが接続を拒否するため、リダイレクトを送信することはできません。したがって、これを行う方法はありません。

2)したがって、htaccessに実行させたいのは、ネイキッドドメインをhttpsにリダイレクトすることだけです。これを行うには:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}

証明書にはwww.example.com使用も含まれている場合

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
于 2012-05-30T09:48:21.637 に答える