エントリー

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を自由に操作できそうです。便利。
…と言いつつ、まだ最低限の知識しか仕入れていないので要勉強です。

ページ移動

ユーティリティ

カテゴリー

検索

エントリー検索フォーム
キーワード

過去ログ

過去ログ表示フォーム
キーワード

Feed