![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
スクリプトなどではなく、Apacheにセッション管理させる方法を探しています。
具体的には、たとえばログインしたユーザーだけアクセス可能なページを作る場合、通常ならスクリプトにてセッションIDをログオン時に発行、その後はセッションIDをチェックしてページを表示させますよね。
ところが、この「アクセス可能なページ」をスクリプトではなく通常のHTMLにしたいのです。
イメージとしては、Apache側でリクエストを受けた際にセッションID(CookieなりURLパラメーターなり)をチェックするような機能または外部プログラムを呼び出し、チェックOKなら何もしない、つまりリクエストどおりのHTMLを返す、チェックNGならログオンページにリダイレクトさせる、というようなものです。
mod_ext_filterを使って「セッションチェックプログラム」を呼び出すようにすればできそうに思うのですが、問題はApacheのバージョンが2.0.46のため、ExtFilterDefineにてmode=inputが使えないのです…。
代わりになるようなモジュール、あるいは代替案、というより一般的にこのようなケースではどういった方法がとられるのでしょう。
御教授のほどよろしくお願いいたします。
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. …
ありがとうございます。
なるほどmod_rewriteでスクリプトに直接リダイレクトさせる手もありますね。
その後いろいろ試行錯誤して、mode=outputでフィルターを噛ませる方法が、とりあえず成功しました。
<Directory ~ または、適用させたいディレクトリに置いた .htaccessファイルに
SetOutputFilter session-check
と1行書くだけで、HTMLや画像などすべてのファイルに対してApacheがセッションチェックしてくれる、というものです。
もう少しテストしてみますが、普通にスクリプトで処理するより軽いと思います。何しろ、まったく手を付けなくて良いのですごく楽です^^
しかしまだ問題もあるかもしれませんので、ご提案いただいた方法も代替案として検討させていただきます。
ありがとうございました。
No.2
- 回答日時:
Basic認証でもできないこと無いけど
.htpasswdと.htaccessを利用ユーザが
自分の情報だけ書き換えができるCGI/PerlなりPHP
プログラムなりを書けばいい。
HTMLだけという考えは捨ててシステム的に
XoopsなあたりCMSあたりを使った方がいい気がするけど
この回答への補足
すみません質問の仕方が悪かったようです。
あくまでも今回の質問は、Apacheでセッション管理させる方法、あるいは代替案などを使って、セッション認証を介してHTMLファイルにアクセスさせる方法です。
アクセス制限以外の部分は割愛していますが、Basic認証では不可能であり一般的ではないものなのです。セッション管理は必須となっておりまして。
わかりやすい例を挙げれば、ショッピングカートのようなものがありますよね。
解りにくくてすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPのセッション有効期限について 5 2023/06/14 12:40
- ネットワーク OSI参照モデルの各層の役割がわかりません。 3 2023/04/21 21:12
- PHP 「ログイン機能を持たせる」説明が気難しいです。 2 2022/10/11 02:59
- Google Drive 会社への勤怠届出にGoogleフォームを使用しています。 しかし、最近何故か『このサービスはビジター 2 2022/12/05 00:21
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- PHP 掲示板のセキュリティについてアドバイスお願い致します 1 2023/08/11 20:44
- ネットワーク ホームページを何度もリロードしてるとブラックリストに入れられてアクセスできなくなりますか? 1 2023/03/30 12:18
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- その他(ゲーム) ファイナルファンタジー7リメイクのnormalクリア後のセッションセレクトについて。 セッションを自 2 2023/04/11 16:52
- PHP バージョン情報の取得方法について 1 2023/03/15 11:56
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WebBrowserを初期化
-
コネクション・セッション・ト...
-
DVD-Rの「セッションを閉じる」...
-
セッション変数の破棄と再設定
-
自分のPCへアクセスしているコ...
-
CD-Rのセッションクローズを調...
-
会員制サイトでの「ログイン」...
-
コンピュータへの接続数が最大...
-
TelnetのNTLMの値を変更したい
-
ブラウザの×(閉じる)ボタンの...
-
画像のようにユーザーが登録し...
-
セッションとコネクション
-
tomcat+apache2台のサーバー間...
-
会社への勤怠届出にGoogleフォ...
-
DVDの中身が表示されません。
-
VBAで一時中断したプログラムの...
-
submitボタンにvalue属性の値で...
-
ブラウザの×ボタン(閉じるボタ...
-
VB.netでボリュームレベルメー...
-
UWSC
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コネクション・セッション・ト...
-
コンピュータへの接続数が最大...
-
会社への勤怠届出にGoogleフォ...
-
DVD-Rの「セッションを閉じる」...
-
ブラウザの×(閉じる)ボタンの...
-
ブラウザを閉じずにセッション...
-
セッションIDを取得したい
-
DVDの中身が表示されません。
-
WCFのwsDualHttpBindingについて
-
ASP.NET 電卓計算
-
ルータのPPPのランプの色が変
-
CD-Rに追記したときに消え去っ...
-
自分のPCへアクセスしているコ...
-
JSPでポップアップウィンド...
-
遠隔操作されてる?
-
ショッピングカートのプログラ...
-
別ブラウザにセッションを渡す...
-
セッション変数の破棄と再設定
-
javaでのアクセスカウント
-
WebBrowserを初期化
おすすめ情報