mod_rewrite
- 2008/03/11 11:43
- カテゴリー:雑記, サイト
- タグ:mod_rewrite
この雑記帳は http://www.favorite-labo.org/ からアクセスできますが、プログラム自体は http://www.favorite-labo.org/blog/index.php にあり、実は公開ディレクトリ直下にプログラムはありません。
また、http://www.favorite-labo.org/diary.cgi にアクセスすると以前の雑記が表示されますが、プログラム自体は http://www.favorite-labo.org/archives/archives.cgi にあり、diary.cgi というファイルは存在していません。
これらは mod_rewrite を利用することにより、URLを書き換えています。具体的には、公開ディレクトリ直下の.htaccessに、以下の内容を記述しています。
RewriteEngine On
RewriteRule ^$ blog/ [L]
RewriteRule ^diary.cgi(.*)$ archives/archives.cgi$1 [L]
各行の意味は以下のとおり。
- 1行目
- mod_rewrite を有効にしています。
- 2行目
- 「何の文字列も与えられずに公開ディレクトリ直下にアクセスすれば、
blog/を表示する。」としています。 - 3行目
- 「
diary.cgiから始まる文字列が与えられて公開ディレクトリ直下にアクセスすれば、archives/archives.cgiを表示する。その際、diary.cgiに引数が渡されていれば、その内容をarchives/archives.cgiに渡す。」としています。
また、[L] は「条件にマッチすれば、以下に続く処理を行わない」という意味。
正規表現が少し解れば、ページにアクセスするためのURLを自由に操作できそうです。便利。
…と言いつつ、まだ最低限の知識しか仕入れていないので要勉強です。
