ルートレベルの.htaccessに、HTTP要求をHTTPSとして書き換える条件を追加しました。
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI}
これは、メインドメインとすべてのサブドメインに適用されます。残念ながら、HTTPSで動作するためにサブドメインの1つで行う作業がまだあるため、thatone'sに何かを挿入したいと思います。継承された書き換えルールをundohtaccessファイル。
ファイルはまだ親ドメインから他の多くの設定を継承する必要があるため、その1つの書き換えルールのみを元に戻す必要があります。
特定のサブドメインに対してこの書き換えルールを無効にするにはどうすればよいですか?
サブドメインがメインドメインのドキュメントルートのサブディレクトリを指している場合は、そのサブディレクトリのRewriteEngine On
ファイルに.htaccess
ディレクティブを単純に含めることができます。ただし、これは親.htaccess
ファイル内のmod_rewriteディレクティブをallオーバーライドします。これは望ましくない場合があります(ただし、「親ドメインからの他の構成」継承される)。
実行する親.htaccess
に他のmod_rewriteディレクティブがある場合は、サブドメインを明確に除外する親.htaccess
ファイルのこのHTTP to HTTPSルールに条件を追加する必要があります。
例えば:
RewriteEngine On
RewriteCond %{HTTP_Host} !^subdomain\.
RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [R=302,L]
Hostがnotstart subdomain.
であり、nothttpsである場合その後...
通常、リダイレクトにはL
フラグが必要なので、処理はファイル全体で続行されません(さらにmod_rewriteディレクティブがある場合)。また、このショップは通常301(永続)リダイレクトです。この場合は、302
を301
に変更して、正常に機能していることが確認できたらそれを変更します。これは開発中の302のままにしておくのがベストかもしれませんが。
また、これがRewriteRule
substitution(またはRewriteCond
ディレクティブ)で使用されていない場合、URLパス(つまり、(.*)
)をキャプチャする必要はありません。