• ベストアンサー

$_SERVER["HTTP_HOST"]と$_SERVER["SERVER_NAME"]の違い(というか意味合い)は?

phpのバージョンは、5.1.6で、OSのバージョンはCentOS4.4です。 お聞きしたいのですが、 $_SERVER["HTTP_HOST"]と$_SERVER["SERVER_NAME"]の違い(というか意味合い)はなんでしょうか? phpinfoでみても、同じの場合したことがみたことがないもので。 ご存じの方いらっしゃいましたら、お教えいただければ幸いです。 よろしくお願いいたします。

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

  • ベストアンサー
回答No.2

$_SERVERはサーバーの環境変数やPHPの情報を保存した配列です。 $_SERVERのうち、環境変数はgetenv()でも取得できます。 $_SERVER["SERVER_NAME"]で取得できる名前は Apacheの場合はhttpd.confで、 UseCanonicalNameがOnになっているときに、ServerNameで指定された値が使われます。 UseCanonicalNameがOffになっていると、ドメイン名やIPアドレスになります。 UseCanonicalNameがOffになっていて、http://127.0.0.1:8001/のようにポート指定でアクセスした場合は、ポート番号は除かれます。 HTTP_HOSTはHTTPでアクセスしたときのホスト名、つまりドメイン名+ポート番号がそれに当たります。 (厳密には違うかも知れませんが、、、) http://www.ietf.org/rfc/rfc2616.txt VirtualHostを使ってポート指定でアクセスすると違いが出ますが、 デフォルトでUseCanonicalNameはOffになっていますし、ホスティングサービスではOnにする理由もありません。 http://httpd.apache.org/docs/2.0/ja/mod/core.html#usecanonicalname (「これが有用な場合の例は、」の段落参照。主にイントラネット向け?) 、、、と書くのはいいとして、私自身、UseCanonicalNameやホスト名の意味や使い方をわかっていません。 こうすれば違いが出るということだけですが、 ご参考まで。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

$_SERVERとはhttpサーバーの環境変数です なのでPHPは直接は関係ありません。 HTTP_HOSTはブラウザからリクエストされた名前で SERVER_NAMEはサーバー側が自分で持っている名前です。 HTTP_HOSTがないような場合はSERVER_NAMEは自分で持っている 名前をブラウザに返すようでおもにCGIなどに利用されます。 設定によっては別の名前を返しますが、ほとんどの場合 SERVER_NAMEはHTTP_HOSTと同値になるようですね

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • $_SERVER["HTTP_HOST"]と、$_SEVER["DOCUMENT_ROOT"]の違いは?

    PHP初心者で勉強中です。 書籍にて勉強をすすめていますが、 そもそも・・・と思い質問させていただきます。 $_SERVER["HTTP_HOST"]と,$SERVER["DOCUMENT_ROOT"]の違いは? といいますか、 どういった場合にどう使いわけてらいいのでしょうか? HTTP_HOSTのほうは、その使用例として 例えば $url = "http://" . $_SERVER["HTTP_HOST"] . dirname($_SERVER["SCRIPT_NAME"]) . "/******.php"; といった場合につうかうそうですが、 DOCUMENT_ROOTの方は、以下のようなSmartyのテンプレート格納ディレクトリの変更の際に使うようです。(書籍の一部を抜粋しました。) define("ROOT_DIR",$_SERVER['DOCUMENT_ROOT']."/.."); require_once("Smarty.class.php"); class MySmarty extends Smarty { function MySmarty (){ $this->template_dir = ROOT_DIR."/templates"; $this->compile_dir = ROOT_DIR."/templates_c";          ・          ・          ・ とても基本的な質問になっていると思いますが、 二つの違いだけでもご教授くださいませ。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • HTTP_X_FORWARDED_HOSTについて

    PHPの $_SERVER['HTTP_X_FORWARDED_HOST'] を利用しようとしたところ、値が入ってきたり、入ってこなかったりします。 質問は以下の二点です。 1. HTTP_X_FORWARDED_HOSTとはそもそも何なのか 2. 値が入ってこない場合の理由で想定されるもの よろしくお願いします。

  • hostファイルを編集して新たなhostを作りたい

    ○質問の主旨 hostファイルを編集して新たなhostを作りたいと 考えています。しかし管理者権限で編集をした後に コマンドプロンプトのpingを実行して疎通確認をしても、 新たに作成したhostと疎通できていないようです。 例えば、http://example.jp/phpinfo.phpと ブラウザソフトに入力しても、 「接続を試みましたが、拒否されました: example.jp (port=80)」 と返されます。 新たなhostと疎通するためには、どうすれば良いでしょうか? 詳しい方がいらっしゃいましたら、ご教示願います。 ○質問の補足 (編集前の一部) # x client host # localhost name resolution is handled within DNS itself. # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost 127.0.0.1 localpress (編集後の一部) # localhost name resolution is handled within DNS itself. # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost 127.0.0.1 localpress 192.168.64.128 example.jp trap.example ○環境 PC:windows8 仮想マシン:VMwarePlyaer OS:UbuntuJeOS10.04 ※コマンドプロンプトで疎通確認を行っているときは、 仮想マシンとOSを立ち上げています(添付画像) ○参考文献 体系的に学ぶ 安全なWebアプリケーションの作り方  脆弱性が生まれる原理と対策の実践 P18 (アマゾン短縮コード) http://goo.gl/miO5p8

  • LAMP(Linux・Apache等)の最適組合せ

    LAMP(ランプ)における、OSであるLinux(CENTOS)、WebサーバであるApache HTTP Server、データベースであるMySQL、スクリプト言語であるPHPの最適バージョンの組み合わせを教えていただきたく。 いづれも最新バージョンの組み合わせで問題はないものでしょうか。 CENTOSのバージョンに規定される使用可能なPHPのバージョンなど、互いのバージョンが影響しあうことがあるかのように聞いています。 ならば、各4種(CENTOS Apache  MySQL PHP)最適バージョンの組み合わせのリストがあるのでしょうか。

  • ネームサーバーとDNS

    ドメインの管理にバリュードメインを使っています。 ドメインの管理画面には、それぞれ、ネームサーバーの設定と、DNSの設定がありますが、難解で理解できません。 調べてみましたが、ネームサーバーとDNSの違いがわかりません。 ネット上の解説を読むと、同じものではないかと思ってしまいます。 なぜ、2つの設定がわかれているのでしょうか? この2つの違いは何でしょうか? ネームサーバーを指定したら、DNSの設定は不要? ネームサーバーは、他社のネームサーバーでも構わないし、バリュードメインのネームサバーも利用可能? 理解できないです・・・。 頭が混乱していて、すごくアバウトな質問になってしまいすみません。 ネームサーバーの意味は、理解しているつもりです。 ネームサーバーと、ホスティングサーバーが異なることも理解しています・・・・。

  • レンタルサーバーのPHPの利用の仕様の違い

    レンタルサーバーのPHPの利用の仕様でphpinfoを見たときの「Server API」でApache版とCGI版の違いがわからないのですが、どのように違うのか解る方がいらっしゃいましたら教えて下さい。

    • 締切済み
    • PHP
  • サーバーのHTTPレスポンスが正しくありません

    オンラインゲーム(セガ、野球つく)をやろうとして、ダウンロードしようとしていたのですが途中で 「サーバーのHTTPレスポンスが正しくありません[12152] 」 このようなメッセージが出てダウンロードができなくなりました。 どういった意味に当たるのでしょうか?また正しくないということは設定だとは思うのですが、どうすればよいのでしょうか? ご存知の方いらっしゃいましたらご回答いただけると嬉しいです よろしくお願いします Windows7 IE 11を利用しています

  • IBM HTTP Server 7.0のApacheのバージョンについて

    IBM HTTP Server 7.0の仕様を調べており、環境がない為、 対応するApacheのバージョンをネットで調べたのですが、見つけることができませんでした。 ご存知の方がいましたら、ご教授お願いします。 よろしくお願いします。

  • <?php phpinfo(); ?>と<? phpinfo(); ?>の違い。

    OpenPNE のインストールで色々調べており、以下のサイトで質問させて頂いております。 Fatal error: OpenPNE設置時のエラー に関して http://oshiete1.goo.ne.jp/qa2511321.html 色々調べており、PHP に関する問題では思っていますが、正直な所、PHP を触るのが初めてですので、初心に戻って PHP から調べています。 サーバは、さくらインターネットを借りており、基本的に apache,php 等は標準で動作しています(インストール作業はしていません)。 PHP の動作確認をしようと、 <? phpinfo(); ?> と書いたテキストファイルを作成してサーバにアップロードしました。 ファイル名は、test.php としました。 アップロード後、サーバにアクセス(test.php)すると白紙(真っ白)な状態です。ソースを確認すると<? phpinfo(); ?>が表示されます。ファイルは詠み込まれていると判断しました。 少し調べ所、 <? phpinfo(); ?>を<?php phpinfo(); ?>としたらどうでしょうかと言うアドバイスが有り、<?php phpinfo(); ?>と修正し、サーバにアップロードしら所、phpinfo のページを見ることが出来ました。 そこで質問なんですが<?php phpinfo(); ?>と<? phpinfo(); ?>は何が違うのでしょうか、サーバ側の設定でしょうか。 また、この違いが、OpenPNE のエラーと関係があるのでしゅか? アドバイスを頂ければ幸いです。

    • ベストアンサー
    • PHP
  • Http File Server

    Http File Serverを使ってみたのですが、相手方で、ページがひらけないようです。対処のしかたご存知のかたいたら、宜しくお願いします。

このQ&Aのポイント
  • 質問者は金利が上がるというニュースを聞いており、定期預金の利率も上がる可能性はあるのかを知りたいとしています。
  • また、もし上がるとしたら、どのくらいの利率になるのかも知りたいとのことです。
回答を見る

専門家に質問してみよう