• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Apacheでセッション管理)

Apacheでセッション管理の方法を検討 - スクリプトではなくApacheに任せる

このQ&Aのポイント
  • Apacheでセッション管理する方法を探しています。通常はスクリプトでセッションIDを発行し、ページのアクセス制御に使用しますが、HTMLでアクセス制御を行いたいです。
  • Apache側でリクエストを受けた際にセッションIDをチェックし、チェックOKなら通常のHTMLを返し、チェックNGならログオンページにリダイレクトしたいです。
  • Apacheのバージョンが2.0.46のため、ExtFilterDefineにてmode=inputが使えず、代替案を探しています。どのような方法が一般的に使用されているでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • mflow
  • ベストアンサー率63% (42/66)
回答No.3

mod_rewriteを使ってhoge.htmlファイルにアクセスした場合はhoge.cgi?html=hoge.htmlにアクセスするようにする。 で、hoge.cgiでセッションをいじって、hoge.htmlを出力する。 という感じにしてみては。これだとURLの変更もありません。 代替案になってしまいますが、apacheで何とかしようとするより簡単かと思います。

参考URL:
http://exam.su-jine.com/mod_rewrite/mod/rewrite.html
taseki
質問者

お礼

ありがとうございます。 なるほどmod_rewriteでスクリプトに直接リダイレクトさせる手もありますね。 その後いろいろ試行錯誤して、mode=outputでフィルターを噛ませる方法が、とりあえず成功しました。 <Directory ~ または、適用させたいディレクトリに置いた .htaccessファイルに SetOutputFilter session-check と1行書くだけで、HTMLや画像などすべてのファイルに対してApacheがセッションチェックしてくれる、というものです。 もう少しテストしてみますが、普通にスクリプトで処理するより軽いと思います。何しろ、まったく手を付けなくて良いのですごく楽です^^ しかしまだ問題もあるかもしれませんので、ご提案いただいた方法も代替案として検討させていただきます。 ありがとうございました。

taseki
質問者

補足

その後いろいろ調べ、mod_perlを使えば可能なことがわかりました。 ご回答いただいた皆様ありがとうございました。

その他の回答 (2)

回答No.2

Basic認証でもできないこと無いけど .htpasswdと.htaccessを利用ユーザが 自分の情報だけ書き換えができるCGI/PerlなりPHP プログラムなりを書けばいい。 HTMLだけという考えは捨ててシステム的に XoopsなあたりCMSあたりを使った方がいい気がするけど

taseki
質問者

補足

すみません質問の仕方が悪かったようです。 あくまでも今回の質問は、Apacheでセッション管理させる方法、あるいは代替案などを使って、セッション認証を介してHTMLファイルにアクセスさせる方法です。 アクセス制限以外の部分は割愛していますが、Basic認証では不可能であり一般的ではないものなのです。セッション管理は必須となっておりまして。 わかりやすい例を挙げれば、ショッピングカートのようなものがありますよね。 解りにくくてすみません。

回答No.1

そもそもそんな事しないで Basic認証で良いんでは?

taseki
質問者

補足

ご回答ありがとうございます。 たしかに簡単なものならBasic認証でも良いですが、今回はセッション管理が必要なシステムなんです。 パスワードをユーザーが変更したり情報を引き継いで遷移させるようなシステムでは、通常セッション管理を使いますよね。 で、それは良いのですが、それを通常のHTMLにも適用させたく、今回質問させていただいた次第です。

関連するQ&A