次の方法で共有


【IIS7】 Tech・Ed 2008 セッション振り返り(10)

次は構築系で特にApacheをご利用になっている方に読んでほしいモジュールについてです。

アイテム №9
「URL Rewrite Module for IIS7.0」

image

説明

Webサーバーが処理を行う前にルールに従ったURLのリライトメカニズムを提供するツール。ヘッダーやサーバー変数に基づき、正規表現やワイルドカードを使用したルールを作成可能。

特徴

●ルールベースで動作するエンジンによるパターンマッチング
●ECMA-262互換の正規表現、ワイルドカードによるルール
●サーバー全体に効くGlobalルール[applicationHost.configに指定]と特定のスコープ(例:サイト)に効くDistributedルール[web.configで指定]が指定可能
●URLリライト以外にもリダイレクト、処理中止、カスタムステータスコードの送付などのアクションも可能
●mod_rewriteのルールを変換、インポートする機能がある

◎GoLiveになったタイミングで FastCGI の Update もインストーラに含まれましたのでご注意ください。

ベネフィット

柔軟なルールベースのリライトエンジンにより、ユーザーフレンドリー、あるいはサーチエンジンフレンドリーなURLを動的アプリケーションでも可能にする。

利用可能 OS

Windows Server 2008 (IIS 7.0)

その他前提条件

IIS7.0がインストールされていること

入手先

Microsoft URL Rewrite Module for IIS 7.0 Go Live (x86)
Microsoft URL Rewrite Module for IIS 7.0 Go Live (x64)

開発ステージ

Go Live

ドキュメンテーション

Using URL Rewrite Module
https://learn.iis.net/page.aspx/460/using-url-rewrite-module/


セッションより

このモジュールはApacheを選択する理由の一つとなっていたURLの書き換え処理を提供するものです。以前 Mike Volodarsky(英語のIIS7.0リソースキットのメイン筆者) というプログラムマネージャーが FastCGI 関連を担当していたのですが、彼が Microsoft を去り、今は Ruslan Yakushev さんが FastCGI、URL Rewriteモジュール周りを担当しています。人名でいい情報に辿り着くことも結構ありますからあえてご紹介しておきます。Ruslan は今年のZendConでも登壇していたようで、かなり精力的に活躍しています。

セッションでご紹介したのは複雑になりがちな動的コンテンツのURL書き換えがこれでIISでもできるようになったこと、それによって負荷分散などの機能(Application Request Routing Module)を実装できるようになったこと、および Ruby on Rails の環境をこのモジュールで構築できることなどをご紹介しました。

RoRの環境構築についてはここでは細かく説明しませんが、リンクをいくつかご紹介します。

https://wiki.rubyonrails.org/rails/pages/HowToConfigureIIS7
https://ruslany.net/tag/rubyonrails/

Ruslanのブログが多分 この領域で一番早い情報源になると思います。ちなみにサイト毎のPHP環境設定なんかも彼のブログでもいち早く紹介されています。

感想

このモジュールを作ったことが一番 IIS開発チームの真剣さを表していると感じています。Apacheでできることができないのですから、これがないと。私はすごいことだと思っていますし、より多くの方に多くの可能性を提供することなので素晴らしいと思います。なーんだ IIS じゃできないんだじゃなくて、今度はなーんだ Windows でもできるならそっちでいいやと考える人が増えることを期待します。Windows の管理の敷居は低いと思いますし、IIS7の標準機能では診断機能(失敗した要求トレースなど)もかなりすぐれたものになっていることはもう触っていただいた方にはおわかりいただけると思います。OOBの提供方法になったことによって、どんどん mod_xx と同等の機能ができるものが増えてくることを期待するばかりです。

余談

さらっと上で書いてしまったんですが、実はPHPのサイト毎にそれぞれの設定ができるというのはかなり便利なことだと思います。バージョンとphp.iniをそれぞれで指定できるというのはかなり柔軟性を高めることになります。これは Ruslan が投稿を書いているのでそれをご紹介しておきます。これによるとGoDaddy.comでの検証を元に手順を反映したことになっています。

Per-site PHP configuration with IIS FastCGI