- ベストアンサー
ApacheにてURLの一部をセッションに移したい!
- ApacheにてアクセスされたURLのサブサブドメイン部分の値を取得し、PHP用にセッションに値を移したいのですが何か良い方法はありますでしょうか?
- HTTPなどにアクセスがあった時に、Apache側でURLのサブサブドメイン部分の値を取得し、セッションに移す方法が知りたいです。
- URLの一部をセッションに移すためには、Apacheの設定を行い、アクセスされたURLの値を取得し、セッションに保存する必要があります。具体的な方法はご存知ですか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>環境変数に移す場合は >apache/mod_rewriteで可能なのでしょうか?? SetEnvIfなどでできるかもしれませんが、少なくとも私はやり方知りません(ゴメンナサイ)。 phpならば、$_SERVER['HTTP_HOST']などを利用すればよいと思います。 この変数には、aaaa.bbbb.hayaty.jp という値が入ってくるので、最初のピリオド以前を切り出せばよいと思います。 $HTTP_HOST = @$_SERVER['HTTP_HOST']; $user = substr($HTTP_HOST, 0, strpos($HTTP_HOST, '.')); ただし、この値はリクエストヘッダの記述いかんで決まってくるので、完璧なものではありません。でも、最近のPCのブラウザを使ってまっとうな方法でアクセスしてくるユーザでは、問題ないと思います。 #ANo.2では、$_ENVのSERVER_NAMEなどを使うと書きましたが、HTTP_HOSTを使う方が一般的かなと思い直して、上記ではHTTP_HOSTを使いました。
その他の回答 (3)
- fdsjaklfjas
- ベストアンサー率81% (96/118)
>上はURLの一部をUSERと言うセッションに移る処理みたいです。 ANo2の者です。上は、REQUEST_URIの値の一部によって、USERという名前の環境変数を設定しているで、phpのセッションとは何も関係ないです。apache/mod_rewriteでphpのセッションを操作することはできません。
お礼
ご回答ありがとうございました。 ひとまずaaaaの値を環境変数に入れる方向に変えてみたいと思います。 さらに質問で申し訳ないのですが、環境変数に移す場合は apache/mod_rewriteで可能なのでしょうか?? よろしくお願い致します。
- fdsjaklfjas
- ベストアンサー率81% (96/118)
apacheで、phpの$_SESSIONに値を入れることは無理だと思いますが、apacheは環境変数に様々な値をセットしてくれます。php側で、$_ENVのSERVER_NAMEやHTTP_HOSTを参照して、$_SESSIONに入れてやればよいのではないでしょうか(HTTP_HOSTは余りあてになりませんが)。
- eccschool
- ベストアンサー率40% (2/5)
そういった関数はありませんね・・。 多分無理だと思います。
補足
ApacheのrewriteでURLの一部をセッションに移すことができる という所までは調べることができたのですが、以下のサンプル をどう改造したらよいか分かりませんでした・・・ Apache初心者なもので。 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^.s\..*.\/.*$ RewriteRule ^s.(.+)/(.+) $2 [E=USER:$1,L] RewriteCond %{REQUEST_URI} ^.s\..*.\/$ RewriteRule ^s.(.+)/ / [E=USER:$1,L] 上はURLの一部をUSERと言うセッションに移る処理みたいです。
お礼
fdsjaklfjasさん 回答が遅くなりまして申し訳ありませんでした。 >$HTTP_HOST = @$_SERVER['HTTP_HOST']; >$user = substr($HTTP_HOST, 0, strpos($HTTP_HOST, '.')); せっかくアドバイスを頂いたのですが、Apacheは使用せずに PHPのみで処理をすることにいたしました。 ありがとうございます。