こんにちは。ぽこです!
今回は、ページのリダイレクトをできる、.htaccessの書き方についてお話しします。
書き方の例
.htaccessは次のように書くことができます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !(^/aa/index.php)
RewriteRule ^(.*)$ /aa/index.php [L]
</IfModule>
1行ずつ説明していきます。
説明
<IfModule mod_rewrite.c>
これは、利用環境でmod_rewriteが使えるかどうかを確認しています。
使える場合にのみ中のコードを実行するため、エラーの発生を防ぐために記述したほうがよいでしょう。
RewriteEngine On
これは、mod_rewriteの機能を有効化するという意味です。
RewriteBase /
これは、Rewriteの処理後にベースとなるURLの指定をしています。
特に理由がなければ「RewriteBase /」と書くとよいでしょう。
このように書くと、どのディレクトリに配置してもドキュメントルートからのパスになるので、わかりやすいです。
RewriteCond %{REQUEST_URI} !(^/aa/index.php)
ここからがRewrite処理になります。
RewriteCondでは、ルールの定義を行っています。
ここで指定した条件に一致する場合に、次の処理が実行されます。
今回の場合は、/aa/index.php以外、例えば/aa/bb/など、の場合に条件に一致します。
ちなみにここで/aa/index.php以外としているのは、リダイレクトの無限ループを防ぐためです。
RewriteRule ^(.*)$ /aa/index.php [L]
ここで、URLの書き換えを行います。
こちらは^(.*)$を/aa/index.phpに書き換えるという意味です。

