引き続き
前回の記事を書いた後、速攻で @matsumotory さんからご連絡頂いた。ハヤっ!
mod_mrubyのバグ(中で呼び出しているmrbgemのバグ)ですね。正規表現使えるように最新版で更新しておきました。 / “mod_mruby でユーザーエージェントを判断してアクセス先を振り分けてみる - ようへいの日々精進” http://t.co/hUGj63eCGB
— MATSUMOTO Ryosuke (@matsumotory) 2014, 3月 1
マジ有り難い。
修正について
こちらのように利用する mrbgem を mruby-hs-regexp から mruby-onig-regexp に変更されていた。
試す
あらためてビルド
git pull してきて sh build.sh && make install
する。
hook スクリプトを修正
前回のスクリプトを以下のように修正した。
--- rewrite.rb.bk 2014-03-01 10:03:58.723164205 +0000 +++ rewrite.rb 2014-03-01 10:06:28.439159513 +0000 @@ -9,9 +9,9 @@ Apache.return(Apache::OK) end # -if agent.include?("Mac") then +if /iPhone|iPad|iPod/ =~ agent then go_redirect("/iphone.html") -elsif agent.include?("Android") then +elsif /Android/ =~ agent then go_redirect("/android.html") else Apache.return(Apache::DECLINED)
お馴染み(個人的な見解)の書き方で条件を指定出来るようになった。
ユーザーエージェント iPhone でアクセス
ユーザーエージェントが iPhone のクライアントからアクセスすると...
おお。
動画で動作確認
画像だけだとイマイチ伝わりにくいので...
User Agent Switcher
でユーザーエージェントを切り替えながら動作確認している図。
最後に
- 正規表現が利用出来ることが確認出来たので引き続き色々な条件を試していきたい