mod_rewriteの設定 1日目

Linux

RwriteCond、RewriteRule・・・使ったタイミングでは覚えているんですが、ちょっと時間が空くと、「あれ?」となってしまうことが多いのでメモしておきます。

 

mod_rewriteですが、まずは動くことを確認するために下記のコマンドを実行します。
※環境はCentOS6.xです。
[shell]
httpd -M
[/shell]

 

ずらーっと出てくると思いますが、表示されている中に下記の内容があるかを確認します。
[shell]
rewrite_module (shared)
[/shell]

 

面倒な方は、下記のコマンドであるかを確認してください。
[shell]
httpd -M |grep rewrite_module
[/shell]

 

この時点で、表示されていない場合には利用中のapacheのモジュールとしてmod_rewriteが読み込まれてません。httpd.confの設定を変更し、利用できるようにしましょう。

 

上記の流れで使えることが確認できたので・・・実際にmod_rewriteを使ってみます。

設定する箇所は、httpd.confやvirtualhost.conf、.htaccessなどがありますが、今回は.htaccessの設定で行っていきます。

 

はじめに、mod_rewriteを利用する場合に必要な設定を.htaccessの中に記述します。
これを書かないと・・・動かないです。
[shell]
RewriteEngine On
[/shell]

 

では、実際に設定する内容を利用パターンごとに記載していきます。

強制的にHTTPSへのリダイレクト
http://localhostへの接続を強制的に、https://localhostに変更する場合に利用できます。
[shell]
RewriteCond %{HTTPS} off
RewriteRule ^/(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
[/shell]

 

強制的にHTTPSへのリダイレクト(ELB)
HTTPSでのアクセスをELBやPoundなどで受け付け、HTTPS(443)で受けたアクセスをサーバ(apacheなどWebサーバが稼働)へ、HTTP(80)で渡している場合に利用できます。
[shell]
RewriteCond %{X-Forwarded-Proto} !^https$
RewriteRule ^/(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
[/shell]

 

ここの内容は追記、または別記事で増やしてきます。
(たぶん、仕事で使った内容になると思います。)

コメント

タイトルとURLをコピーしました