サイト全体をSSL化するため、.htaccessにmod_rewriteを使ったリダイレクトを記述しています。
ここまではうまくいくのですが、一部ディレクトリをそのルールから除外しようとするとうまく動作しません。
何かアドバイスやご助言、良いお知恵を拝借できたらと思いまして書き込ませていただきます。
.htaccessには以下のように記述しています。
RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} !(^/sample/.$) RewriteRule ^(.*)/$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] RewriteCond %{HTTPS} on RewriteCond %{REQUEST_URI} (^/sample/.$) RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
動作の状況は以下の通りです。
- http://example.com/にアクセスすると、https://example.com/にリダイレクトされます。
- http://example.com/hoge/にアクセスすると、https://example.com/hoge/にリダイレクトされます。
- http://example.com/sample/にアクセスすると、https://example.com/にリダイレクトされます。
希望の動作は以下の通りです。
0. http://example.com/にアクセスすると、https://example.com/にリダイレクトされます。
0. http://example.com/hoge/にアクセスすると、https://example.com/hoge/にリダイレクトされます。
0. http://example.com/sample/にアクセスすると、リダイレクトされない。
0. https://example.com/sample/にアクセスすると、http://example.com/sample/にリダイレクトされる。
書き方の順番を入れ替えたり、別のディレクトリで試してみたりしたのですが、うまくいきません。
現状の動作3のように指定したディレクトリだけ違う動きをしているので、
ディレクトリの条件指定はうまくいっているような気がしています。
ワードプレスを利用しているのも原因でしょうか・・・?
良いお知恵を拝借できないものかと投稿させていただきます。よろしくお願いします。
追記します。
.htaccessにはワードプレスのmod_rewriteも記載されており、
これがもしかしたら邪魔しているのだろうか・・・とも、思いましたので、念のため追記いたします・・・。
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} !(^/sample/) RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] RewriteCond %{HTTPS} on RewriteCond %{REQUEST_URI} (^/sample/) RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule> # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/10 05:44