質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

2回答

1058閲覧

SSL化に際して、.htaccessの追加コード

aerobat

総合スコア13

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

0クリップ

投稿2019/01/01 08:48

wordpressのSSL化をしています。

.htaccessに追加するコードとして、
Xserverのページでは次のように記載されています。

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

いろんなサイトを見ると、次のように書かれています。

<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} !=on [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>

このように
<IfModule mod_rewrite.c></IfModule>で囲まれています。

またRewriteCond %{HTTPS}の後ろの記述が
Xserverでは !on
上の例のように!=on [NC]
さらにoffのものがあり、どれが正しいのか混乱しています。

[NC]については大文字小文字の区別なしということはわかったのですが、!on, !=on, offの意味や違いについてはわかりません。

よろしくご教授のほどお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

%{HTTPS}は、onまたはoffで、=onになることはないので、!onが正しいです。

<IfModule mod_rewrite.c></IfModule>で囲むのは有害無益なので、書かない方が良いです。

記述ミスでmod_rewriteがロードされていないときに、囲んでいるとエラーにならず、リライトされない状態でApacheが起動するので気づくのが遅れます。囲まないでおくとApache起動時にエラーになるので、起動時にすぐに気づけます。まあ、この例の場合は気づかずにリライトがスルーされてもhttps化されないだけで害は小さいですが、リライトの使い方によっては、リライトされないとサイトが動作しない場合もありますので。

投稿2019/01/01 09:10

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2019/01/01 09:31

訂正です。! と = は両方とも指定しても大丈夫みたいなので、!=on が間違いと言うことではないようです。
aerobat

2019/01/01 10:59

otnさん。ありがとうございます。 ちなみに!と=はどんな意味なんでしょうか? また、onとoffの違いは何でしょうか?
otn

2019/01/01 11:31

onとoffは自明では? !は否定、=は文字列として一致
aerobat

2019/01/01 11:58

ありがとうございました。
guest

0

ベストアンサー

<IfModule>は書いての通り、「そのモジュールがある場合だけ有効になる」という意味です(Apacheのドキュメント)。

汎用の設定ファイルであればモジュールを入れていないこともあるので意味がありますが、リダイレクトをかけたい状況下では「mod_rewriteが入っていない」すなわち「設定ミス」なので、消しておいたほうが正解です(Qiita)。

※ 対象となるモジュールを間違えていたので修正しました。

投稿2019/01/01 09:05

編集2019/01/01 09:14
maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2019/01/01 09:10

> SSLモジュール mod_rewrite.c はリライト用モジュールなので特にSSLモジュールについては書かれていないのでは?
maisumakun

2019/01/01 09:15

すみません、思いっきり間違えていたので修正しました。
aerobat

2019/01/01 11:01

maisumakunさん。kei344さん。ありがとうございます。 どうやらxserverに記述してあるとおり、書くほうが良さそうですね。
maisumakun

2019/01/01 11:02

えっと、このコメントを読んだ上で「書くほうがいい」と考えた理由は何でしょうか?
aerobat

2019/01/01 11:11

言葉が足らず誤解を招いたようです。 xserverにはifmoduleの記述はないんです。 なので、xserverに記述してあるとおりというのは、ifmoduleの記述をしないという意味です。 さっそくifmoduleは外しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問