サーバ変数の挙動

URL関連(PHP_SELF、SCRIPT_NAME、REQUEST_URI、QUERY_STRING)、アクセス情報(HTTP_USER_AGENT、REMOTE_ADDR、HTTP_REFERER)、ブラウザの設定(SERVER_PORT)

URL関連

PHP_SELF

実行中のファイル名
/search.phpでアクセス /search.php
/search.php?q=serverでアクセス /search.php
/search.php/q/serverでアクセス /search.php/q/server
/dir/search.phpでアクセス /dir/search.php

(index.phpをフロントコントローラに設定したMVC構造の場合)
/dir/searchでアクセス /index.php
/dir/search?q=serverでアクセス /index.php

SCRIPT_NAME

現在のパス
/search.phpでアクセス /search.php
/search.php?q=serverでアクセス /search.php
/search.php/q/serverでアクセス /search.php
/dir/search.phpでアクセス /dir/search.php

(index.phpをフロントコントローラに設定したMVC構造の場合)
/dir/search?でアクセス /index.php
/dir/search?q=serverでアクセス /index.php

REQUEST_URI

アクセス時に指定されたURI
/search.phpでアクセス /search.php
/search.php?q=serverでアクセス /server.php?q=server
/dir/search.phpでアクセス /dir/search.php

(index.phpをフロントコントローラに設定したMVC構造の場合)
/dir/searchでアクセス /dir/search
/dir/search?q=serverでアクセス /dir/search?q=server

QUERY_STRING

クエリ
/search.phpでアクセス (空)
/search.php?q=serverでアクセス q=server

アクセス情報

HTTP_USER_AGENT

ユーザエージェント(使用ブラウザ)
CCBot/2.0 (http://commoncrawl.org/faq/)

REMOTE_ADDR

IPアドレス 54.211.200.222

PHP

// IPからホスト名へ変換 ec2-54-211-200-222.compute-1.amazonaws.com $hostName = @gethostbyaddr($_SERVER['REMOTE_ADDR']);

ホスト名 ec2-54-211-200-222.compute-1.amazonaws.com

HTTP_REFERER

リファラ(リンク元のURL)

ブラウザの設定

SERVER_PORT

デフォルトは80、SSLではセキュアHTTPポートとして設定されている値(通常は443) 80

PHP

if ($_SERVER['SERVER_PORT'] == '80') {     // httpのとき、httpsで再表示するようリダイレクト     header('Location: https://example.com/');     exit;   }

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。
主にLAPP環境でPHPを書いています。
最近はjQueryをよく書いています。