• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ApacheにてURLの一部をセッションに移したい!)

ApacheにてURLの一部をセッションに移したい!

このQ&Aのポイント
  • ApacheにてアクセスされたURLのサブサブドメイン部分の値を取得し、PHP用にセッションに値を移したいのですが何か良い方法はありますでしょうか?
  • HTTPなどにアクセスがあった時に、Apache側でURLのサブサブドメイン部分の値を取得し、セッションに移す方法が知りたいです。
  • URLの一部をセッションに移すためには、Apacheの設定を行い、アクセスされたURLの値を取得し、セッションに保存する必要があります。具体的な方法はご存知ですか?

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

  • ベストアンサー
回答No.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を使いました。

HAYATY
質問者

お礼

fdsjaklfjasさん 回答が遅くなりまして申し訳ありませんでした。 >$HTTP_HOST = @$_SERVER['HTTP_HOST']; >$user = substr($HTTP_HOST, 0, strpos($HTTP_HOST, '.')); せっかくアドバイスを頂いたのですが、Apacheは使用せずに PHPのみで処理をすることにいたしました。 ありがとうございます。

その他の回答 (3)

回答No.3

>上はURLの一部をUSERと言うセッションに移る処理みたいです。 ANo2の者です。上は、REQUEST_URIの値の一部によって、USERという名前の環境変数を設定しているで、phpのセッションとは何も関係ないです。apache/mod_rewriteでphpのセッションを操作することはできません。

HAYATY
質問者

お礼

ご回答ありがとうございました。 ひとまずaaaaの値を環境変数に入れる方向に変えてみたいと思います。 さらに質問で申し訳ないのですが、環境変数に移す場合は apache/mod_rewriteで可能なのでしょうか?? よろしくお願い致します。

回答No.2

apacheで、phpの$_SESSIONに値を入れることは無理だと思いますが、apacheは環境変数に様々な値をセットしてくれます。php側で、$_ENVのSERVER_NAMEやHTTP_HOSTを参照して、$_SESSIONに入れてやればよいのではないでしょうか(HTTP_HOSTは余りあてになりませんが)。

回答No.1

そういった関数はありませんね・・。 多分無理だと思います。

HAYATY
質問者

補足

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と言うセッションに移る処理みたいです。

関連するQ&A