(環境)Windows2003 sp2 IIS6.0
社内のWEBサイトを構築しています。現行では、IEにhttp://www.hoge.co.jp/login/index.htmlと表示されているのですが、余計なフォルダを見せたくないので、http://www.hoge.co.jp/と表示させたいです。※実際はindex.htmlが表示される。
どのようにすればいいのでしょうか。
つまり、http://www.hoge.co.jp/とIEにURLを入力したときに、URLには表示しないが、http://www.hoge.co.jp/login/index.htmlを実行させたいのです。
frame(もしくはiframe)を使うしかありません。
/index.htmlで
<html> <iframe src="top.html" name="my-frame"></iframe> </html>
とします。top.htmlが本来のトップ画面です。
※IISでindex.htmlをデフォルトページに加える必要がありますが...
ただしアンカーなどでtarget=_topした場合、このフレームが取れてしまうのでtarget=my-frame等とする必要があります。
.htaccess にこう記述すれば宜しいのでは?
DirectoryIndex login/index.html .ht
#index.html index.htm login.cgi など複数指定可 (左が優先)
私が何かを勘違いしているのでしょうか?
1.サードパーティモジュールを導入する。
ISAPI rewriteというサードパーティモジュールがあります。
http://www.helicontech.com/isapi_rewrite/
Lite版はFreewareとなっています。
2.サーバを Windows 2008 + IIS7.0 にアップデートしてしまう。
IIS7.0ではApacheのmod_rewrite的挙動が可能になっています。
http://technet.microsoft.com/ja-jp/library/dd647603.aspx
3.Apacheでリバースプロキシをたてる。
いずれもサーバ、若しくはネットワーク構成に変更が必要となるので、本稼動環境では厳しいかもしれませんね。
login/index.htmlはドキュメントルートに置けないのでしょうか?
そう言った事は、ISAPIフィルタを噛ませてIISを拡張してあげれば可能だと思います。
Cとかで作ります。ちょっと面倒ですけどね。
http://program.station.ez-net.jp/special/vc/isapi/filter/url.asp
なお、IISには「.htaccess」はありません。
apacheでなくIISが対象です。