Amazon

2011年3月26日土曜日

GAEでDirectoryIndexを指定する

例えば、http://www.hogehoge.com/にアクセスすると実はその下にあるhttp://www.hogehoge.com/index.htmlやindex.phpに自動でアクセスするようにすることをDirectoryIndexというらしい。(Apache的に?)

これをApacheのWebサーバーで実現する際には.htaccessファイルにDirectoryIndexという設定項目を記述する。

-----以下こちらより引用
DirectoryIndex index.html index.cgi index.php index.shtml
と書くと、「/(スラッシュ)」止めのURLでアクセスされた場合に表示させるファイル名の優先順位を指定できます。つまり、上のような設定をしている場 合は、index.htmlがそのディレクトリー内にあれば、「/(スラッシュ)」止めのURLでのアクセス時にindex.htmlのコンテンツが表示 されますが(http://www.example.comでアクセスしてもhttp://www.example.com/index.htmlでアクセスしても同一のコンテンツが表示されるということ)、index.htmlが無ければindex.cgiを探しに行き、さらに、それが無ければ、index.phpをと見ていきます。列挙されているファイル名全て見て、どれも存在しなかった場合で、かつ、「Options Indexes」がonに設定されている場合は、そのディレクトリー内のファイル一覧が表示されますので、注意が必要です。「Options Indexes」をonにする場合の危険性については、こちらでも説明していますので、参照してください。
 -----

で、同じことをGAEで実現しようとすると「.htaccessはどこにあるんだ?」となる。
少なくともユーザーは.htaccessファイルは触れないので代わりの方法としてapp.yamlに擬似的に記述する。以下がその記述。

app.yamlの記述詳細はGAEドキュメントに譲るとして




------- app.yamlの一部
handlers:

- url: /
  static_files: htdocs/index.html
  upload: /

- url: /
  static_dir: htdocs




-------

この記述がhttp://hogehoge.appspot.com/というアプリケーションのものだとすると、
ユーザーがhttp://hogehoge.appspot.com/にアクセスすると実際はhttp://hogehoge.appspot.com/static/index.htmlに自動転送される。このファイルは別にindex.htmlでなくても良い

0 件のコメント:

コメントを投稿

Amazon3