masahirorの気まま記録簿

個人的な出来事や意見、生活などの記録を思うままにブログに記録

IISで".htaccess"の基本認証を使う

Microsoft IISで、Apacheの「.htaccess」によるパスワード認証を行いたい場合、「IISPassword」を導入する事で実現できる。

IIS Password Protection Software by Troxo - IISPassword
http://www.troxo.com/products/iispassword/

IISにも基本認証機能はあるが、わざわざWindowsのユーザを作らないといけないので「.htaccess」でお手軽に制御できる。
サポートしている記法は以下の通り。

  • AuthGroupFile
  • AuthUserFile
  • AuthName
  • AuthType
  • Files
  • FilesMatch
  • Require user
  • Require group
  • Require valid-user

IISで「RewriteEngine」を何とかして使うことができないものかを探していたときに見つけた。残念ながら「IISPassword」は基本認証主体の為「RewriteEngine」は使えないが、これはこれで後々便利なので導入した。
IISでRewriteEngine互換のことできないかなぁ・・・
検索していたら、MOD_REWRITE同等の機能をIISで実現できるものを見つけた。

ISAPI_Rewrite - コンピュータ系blog
http://kinshachi.ddo.jp/kurage/html/MT/comp/archives/000329.html
Helicon Tech - IIS modules and ISAPI filters for URL rewriting and search engine optimization
http://www.isapirewrite.com/

「ISAPI_Rewrite」というもので、無料版では一部機能とサーバ全体でしか設定できないが、普段よく使うmod_rewriteは使用出来る様子。
早速導入してみたのだが、、、書き方が一部Apacheと異なり、.htaccessの中身をそのままコピペではダメで、書き換える必要があった。正規表現をほとんど理解してないので、挫折。とりあえず自分がやろうとしている事においてrewriteの設定は必須では無かったので、時間があればじっくり取りかかってみたい。
ツールとしては、上記2つあればIISでもApache並みの機能が使えるので、イントラサイトなどで管理のしやすさからIISを導入せざるを得ない状況・すでに導入されている状況でも、やりたい事はかなり実現できると思う。