.htaccess:トップページ以外のアクセスをリダイレクト

WEBサイトを構築している時にトップページ以外アクセスを拒否したい場合があります。
サイトの引越しやサイトの閉鎖などの時も必要になるかもしれません。

.htaccessを使用すれば、トップページ以外の下層ページにアクセスがあった場合、
トップページリダイレクトさせることが可能です。

下記に.htaccessを使用し、下層ページアクセストップページリダイレクトさせる方法をメモします。


トップページ以外のアクセスをリダイレクト

ドキュメントルートに.htaccessを設置します。
下記の内容を.htaccessに記述します。

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !(^/$)
RewriteRule ^(.*)$ / [R=301,L]

トップページのアクセスをリダイレクトさせない為に、
下記を記述しています。
無限ループさせないように「トップページではない場合」
という条件を指定しています。

RewriteCond %{REQUEST_URI} !(^/$)

また、画像やCSSを使用する為、一部のディレクトリを許可したい場合は、
下記のように記述します。
※「image」、「css」ディレクトリを許可する場合

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !(^/$)
RewriteCond %{REQUEST_URI} !(^/image/)
RewriteCond %{REQUEST_URI} !(^/css/)
RewriteRule ^(.*)$ / [R=301,L]

下記の条件を追加しています。

RewriteCond %{REQUEST_URI} !(^/image/)
RewriteCond %{REQUEST_URI} !(^/css/)