ラボ > サーバ:.htaccess

.htaccessでリダイレクトの設定

作成日:2017-11-14, 更新日:2024-03-13

基本

リダイレクト関連はまず「RewriteEngine on」を記載する。
その後、条件(RewriteCond)とリダイレクト先(RewriteRule)を記載する。

基本的な「RewriteCond」と「RewriteRule」

RewriteCond A B
RewriteRule C D

「(RewriteCond)AがBのとき」に「CはDに転送」というのが基本。

リダイレクト設定が1種類のとき

RewriteEngine on

RewriteCond A B
RewriteRule C D

リダイレクト設定が複数種類のとき

RewriteEngine on

RewriteCond A B
RewriteRule C D

RewriteCond E F
RewriteRule G H

ルールは複数だけど、リダイレクト先が1種類のとき

RewriteEngine on

RewriteCond A1 B1
RewriteCond A2 B2
RewriteRule C D

「(RewriteCond)A1がB1のとき」もしくは「(RewriteCond)A2がB2のとき」に「CはDに転送」。

メモ

・RewriteBaseはRewriteRuleの転送先がパスの時に使われるURL

RewriteCond で使用できるパターンとオプション

条件に利用できるパターン

パターン 説明
! テスト文字列が条件と不一致である場合、true を返す
< テスト文字列を数値、または辞書順として大小比較を行い小さい場合、true を返す
> テスト文字列を数値、または辞書順として大小比較を行い大きい場合、true を返す
= テスト文字列を数値、または辞書順として等価比較を行い等しい場合、true を返す
-d テスト文字列のディレクトリが存在する場合、true を返す
-f テスト文字列のファイルが存在する場合、true を返す
-s テスト文字列のファイルが存在し、サイズが0byteでない場合、true を返す
-l テスト文字列がシンボリックリンクである場合、true を返す
-x テスト文字列に対して実行権限がある場合、true を返す
-F テスト文字列に対してアクセス可能なパスである場合、true を返す
-U テスト文字列に対してアクセス可能なURLである場合、true を返す

条件を評価する時のオプション

オプション 説明
[OR] 連続する RewriteCond のいずれかが true の場合に実行する。
省略時は、連続する RewriteCond がすべて true の場合に実行する。
[NC] 条件を評価する時、大文字小文字を区別しない。