サーバー

RewriteRuleを使ってアクセス制御

2008年11月25日
以前から自分のブログを見て気がついていたのですが、例えば、
http://sample.xxx/sub_dir/
へアクセスすると、sub_dirは存在しないのに、きちんとページが表示されています。

これは一体どういう仕組みなのでしょう。

始めは、
http://sample.xxx/index.php
など、トップディレクトリのインデックスファイルでアクセスを制御しているのかと考えました。が、これでは制御できない気がします。


となると、http://sample.xxx/ へアクセスを制御するファイルをおき、特定のディレクトリやファイルへのアクセスを、別のファイルへ飛ばしているのでしょう。

そしてそれは多分【.htaccess】ファイルです。


自分のブログを調べると、ありました。【.htaccess】。
中身を見ると、なにやら書いてあります。わからないので、ネットで調べてみました。

やはり、思ったとおりです。【RewriteRule】を使えばよいそうです。サーバーがApacheなら使えます。

--------------------------------------------------------------------
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?file=$1 [L,QSA]
--------------------------------------------------------------------

これを【.htaccess】に書き込み、http://sample.xxx/ へおきます。
http://sample.xxx/sub_dir
にアクセスかあると、http://sample.xxx/index.php?file=sub_dir へとばすことができます。

あとは、index.phpで$fileの値を調べ、表示するページを作ればOKです。


RewriteRule
が参考になります。


また1つ勉強になりました。
コメントの書き込み
コメント