MARKLEAPS[マークリープス]

TECH BLOG

マークリープス技術ブログ

open

.htaccessリダイレクトの基本的な書き方

.htaccessリダイレクトの基本的な書き方についてまとめました。

.htaccessリダイレクトの基本的な書き方

 

IfModule mod_rewrite.c

mod_rewrite とは、Apacheというhttpサーバ上で、「URLの書き換え・リダイレクト処理」を行うためのモジュールです。
<IfModule mod_rewrite.c>
</IfModule>
で囲んだコードは、mod_rewriteが有効の場合のみ処理が実行されます。
mod_rewriteが無効の場合は処理が無視されます。

RewriteEngine

On  でmod_rewriteの機能を有効化します。
Off でmod_rewriteの機能を無効化します。

RewriteBase

RewriteBaseは、リダイレクト先のベースとなるパスを指定します。
RewriteBaseを省略した場合、.htaccessを設置したディレクトリからの相対パスになります。
RewriteBase / とした場合、どのディレクトリに.htaccessを設置した場合でも必ずドキュメントルートからのパスになります。

RewriteCond

URLの書き換えを行う条件を定義します。
RewriteRuleの前に記述します。
RewriteCond で指定した条件を満たした場合のみ、RewriteRule が実行されます。

RewriteRule

URLの書き換えを行うための構文を定義します。

フラグ

RewriteCond 条件 [OR]
RewriteRule ルール [L]

RewriteCondやRewriteRuleの末尾にある[]をフラグと言います。
フラグは多数存在します。

 

フラグの使用例

RewriteCond 条件① [OR]
RewriteCond 条件②
RewriteRule ルール [R=301,L]

[OR]
いずれかのRewriteCond(条件)を満たす場合、処理を行う
[R=301]
R=Redirectの意味。[R=301][R=302]のようにリダイレクトコードを付加できます。[R=301]は301リダイレクトを行います。[R]のみは302扱いとなります。
[L]
L=Lastの意味。RewriteRuleの条件にマッチした場合、以降のRewriteRuleを処理しない

フラグを複数指定する場合は、,(カンマ)で区切ります。

 

301リダイレクトと302リダイレクトの違い
・301リダイレクト
恒久的なリダイレクト。
ドメイン変更やリニューアルなどにより、ドメインやURLが完全に変わる場合などに使用します。

・302リダイレクト
一時的なリダイレクト。
およそ数日~2週間といった短期間のリダイレクトに使用します。
サイトのメンテナンス中にメンテナンスにリダイレクトする場合、スマホサイトへの転送をする場合などに使用します。

よく読まれている関連記事

関連最新記事