Linuxなどのメモ書き

mod_rewrite - RewriteMap


Rev.1を表示中。最新版はこちら

作成中

RewriteMapを使うとテキスト形式の変換ファイルを使ってURLを書き換えたり、Perl等の外部プログラムを使ってURLを書き換えることができる。

PerlスクリプトでURLの書き換えを行なう例を示す。
RewriteMapでマップ名(以下ではescape-map)と外部プログラム(以下ではescape.pl)を指定する。prg:は外部プログラムであることを意味する。
escape.plは標準入力から受け取った文字列をescape(URLエンコード)して返す。
escape-mapはRewriteRuleから参照する。

${escape-map:$2|$2}は$2をescape-map(つまりescape.pl)に渡す。

RewriteEngine on
RewriteMap escape-map prg:/usr/local/apache2/conf/escape.pl
RewriteRule ^/(.+)/pg/(.*)$ /$1/index.php?pg=${escape-map:$2|$2} [L]




URLをescapeするPerlスクリプト(escape.pl)
#!/usr/bin/perl

$| = 1;

while (<>) {
chop;
s/([^\w])/'%'.unpack('H2', $1)/eg;
print $_."\n";
}


RewriteLock
最後の改行
$|
スクリプトを修正した場合はApacheを再起動すること。

[関連ページ]
mod_rewriteの使い方


最終更新 2006/06/09 00:49:51 - kztomita
(2006/06/09 00:49:51 作成)


リンク

その他のWiki
Linuxメモ
Xnuメモ

会社
(有)ビットハイブ
受託開発やってます。

よくやる仕事

・Webシステム開発(LAMP環境)
・Linuxサーバー設定関連
サーバー移転作業代行

開発事例にデジタルカタログ/マンガビューワーを追加しました。

draggable.jsのスマホ対応版デモページを追加しました。説明はこちら

検索

Adsense
最近のコメント