答えて
$_SERVER['SERVER_NAME']
ホスト構成(アパッチアパッチの.confファイルのすなわち)で定義されているサーバー名の値を与えます。
$_SERVER['HTTP_HOST']
は、現在のリクエストが実行され、より直接的にリクエストに関連するドメイン名を提供します。
HTTP_HOST
は通常、リクエストに直接関係するという点で、ほとんどのアプリケーションでより便利ですが、SERVER_NAME
は、confファイル内の値を返すことができ、リクエストについて何も教えてくれません。
HTTP_HOST
がSERVER_NAME
と異なる場合があります。 ServerNameがdomain.com
、IPアドレスが1.2.3.4
のApacheでホストが定義されているとします。
は、の2つの着信要求のURLを見て、これらの変数の違いをお見せしましょう:SERVER_NAMEはサーバの設定によって決定されるのに対し、
http://www.domain.com
HTTP_HOST = www.domain.com
SERVER_NAME = domain.com
http://1.2.3.4
HTTP_HOST = 1.2.3.4
SERVER_NAME = domain.com
だから、もう一度、HTTP_HOSTは、より多くのリクエストに結びついています。
HTTP_HOST
は、クライアントによって送信されたHost:
ヘッダーです。結果として、それは少し信頼性の低い可能性があります。 SERVER_NAME
は、ユーザーの入力に関係なく、サーバーの構成
によって決定されます。
動作の違いは微妙です。いくつかの良い例がここに示されてい:http://shiflett.org/blog/2006/mar/server-name-versus-http-host
「SERVER_NAME」は現在のスクリプトが実行されているサーバのホスト名。スクリプトが仮想ホスト上で実行されている場合、これはその仮想ホストに定義された値になります。
'HTTP_HOST'現在の要求のHost:ヘッダーの内容(存在する場合)。ホストの
あなたの結論は間違っています。 'SERVER_NAME'はあなたのサーバの設定によって決まります。(実際には*これは*デフォルトの動作です)依存するようにしてください(http://stackoverflow.com/a/28889208/632951)。 – Pacerier
ここでは、HTTP_HOSTとSERVER_NAMEの関係の例を紹介します。http://shiflett.org/blog/2006/mar/server-name-versus-http-host –
はい、http:// stackoverflowと同じです.com/a/1459794/632951 'SERVER_NAME'はサーバの設定によって決定され、ユーザの入力に依存するようにすることができます。 – Pacerier
HTTP_HOST
内容:一つが存在する場合、現在の要求からヘッダ。
SERVER_NAME
現在のスクリプトが実行されているサーバのホスト名。スクリプトが仮想ホスト上で実行されている場合、これはその仮想ホストに定義された値になります。
もちろん、出力は同じではありません。 – Pacerier
- 1. $ _SERVER ['HTTP_HOST']と$ _SERVER ['SERVER_NAME']検出の問題
- 2. イメージパスと$ _SERVER ['SERVER_NAME']
- 3. 問題がある - $ _SERVER ['SERVER_NAME']
- 4. PHP:$ _SERVER ['REDIRECT_URL']対$ _SERVER ['REQUEST_URI']
- 5. PHP $ _SERVER []変更URL
- 6. $ _SERVER ['SERVER_NAME']を偽造できますか?
- 7. $ _SERVER ['HTTP_HOST'] =私のサーバではないIP
- 8. $ _SERVER [ 'DOCUMENT_ROOT']と$ _SERVER [ 'HTTP_HOST']、いつかのようにいつか他の
- 9. $ _SERVER ['HTTP_HOST']は、ローカルホストとデプロイメントステージングサーバーで異なる
- 10. PHP - $ _SERVER ["HTTP_REFERER"];
- 11. php $ _SERVER ['DOCUMENT_ROOT']問題
- 12. $ _SERVER ['SERVER_NAME']変数の内容を信頼できますか?
- 13. Cron Job $ _SERVER issue
- 14. PHP $ _SERVER ['DOCUMENT_ROOT']とhtaccess?
- 15. $ _SERVER ['DOCUMENT_ROOT']
- 16. $ _SERVER [ 'QUERY_STRING']一つの変数
- 17. $ _SERVER [ 'SELF']
- 18. apache_request_headers()対$ _SERVER
- 19. $ _SERVER ['PHP_SELF']と$ _SERVER ['SCRIPT_NAME']の違いは何ですか?
- 20. PHP:stream_copy_to_stream!= $ _SERVER ['CONTENT_LENGTH']
- 21. PHPファイルディレクトリ - $ _SERVER ['DOCUMENT_ROOT']の親フォルダ
- 22. $ _SERVER ['HTTP_USER_AGENT']例外
- 23. $ _SERVER ['HTTP_HOST']が設定されていません
- 24. $ _SERVERの変数がありません
- 25. $ _SERVER変数の移植性:REMOTE_USER、AUTH_USER、PHP_AUTH_USER
- 26. .htaccessのプリティのURL - PHP $ _SERVER [ 'REQUEST_URI']は
- 27. $ _SERVER ["SERVER_NAME"]と$ _SERVER ["DOCUMENT_ROOT"]は常に同じディレクトリを対象としていますか?
- 28. $ _SERVER [ 'REQUEST_URI']間違った値
- 29. $ _SERVER ['REQUEST_URI']と変数を比較
- 30. ローカルApache Webサーバーの$ _SERVER [DOCUMENT_ROOT]
$ _SERVER ['HTTP_HOST'] "は、現在の要求が実行されているドメイン名を提供し、要求にもっと関連しています。 +1 感謝!!!! 公式の文書にリンクしてくれた人に感謝しますが、私にとっては複雑すぎる;) – Eman
@Mike、それは単にサーバ設定に依存する 'SERVER_NAME'だけではありません。 ['HTTP_HOST'もそれに依存します。](http://stackoverflow.com/a/28889208/632951) – Pacerier