サーバ変数の挙動
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
ユーザエージェント(使用ブラウザ)
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
REMOTE_ADDR
IPアドレス 3.147.73.85
PHP
// IPからホスト名へ変換 ec2-3-147-73-85.us-east-2.compute.amazonaws.com
$hostName = @gethostbyaddr($_SERVER['REMOTE_ADDR']);
ホスト名 ec2-3-147-73-85.us-east-2.compute.amazonaws.com
HTTP_REFERER
リファラ(リンク元のURL)
ブラウザの設定
SERVER_PORT
デフォルトは80、SSLではセキュアHTTPポートとして設定されている値(通常は443) 443
PHP
if ($_SERVER['SERVER_PORT'] == '80') {
// httpのとき、httpsで再表示するようリダイレクト
header('Location: https://example.com/');
exit;
}