/くろまじゅつしへの道/エンコードされたURLのRewrite くろまじゅつしへの道/エンコードされたURLのRewrite - A.K.I. Home

A.K.I. HomeATOM:A.K.I. Home

くろまじゅつしへの道 / エンコードされたURLのRewrite


日本語URL等ではどうしても必要になる、ちょっとした技です。
ルール内ではURLはデコードされた状態で判定されるため、日本語を含むURLは少し細工が必要になります。
httpd.conf

RewriteMap escape-map prg:/var/www/rewritemap/escape.pl
RewriteRule ^/aki/sitedev2/index.php/(楽天ダウンロード)/([^/]+)/([^/]+)$  /aki/sitedev2/index.php/${escape-map:$1}/${escape-map:$2}/${escape-map:$3}/1 [NE,R=301]

escape.pl

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

escape-mapという汎用的なルールを一つ用意しておくことで、日本語を含むURLのrewrite操作も問題なく行えるようになります。
上記の例はこのサイトの楽天ダウンロードの下で実際に使っています。

 
TB:http://www.tetsuneko.net/aki/sitedev2/tb/98f6e93201f93097373e47adffbedd04
(c)A.K.I. 2007