$_SERVER[‘HTTP_HOST’]でリンク先を作るのも、header(‘Location:~’);のアドレス相対指定転送も、やってはいけないことだったらしい。
両方やってた。なんか異常があったらとりあえずトップページへ飛ばしておけって思って。しかもheader(‘Location:’.$_SERVER[‘HTTP_HOST’]);とheader(‘Location:./’]);が混在していた。
‘HTTP_HOST’
現在のリクエストに Host: ヘッダが もしあればその内容。
HTTP1.1のLocationヘッダは、絶対URLでないとRFC違反 | ψ(プサイ)の興味関心空間
んで、すべてのphpスクリプトの先頭に
if( $_SERVER['HTTP_HOST'] != "localhost" ) { require_once('レンタルサーバー用の設定ファイル'); } else{ require_once('ローカルのxamppでの設定ファイル'); }
ってやって、設定ファイルにトップページの絶対URLを書いた。この設定ファイルには他にも、エラー表示の制御とか画像へ描画するフォントの位置とかを書いています。んでさくらのレンタルサーバでは/www/の一段上へいろいろなドメインのディレクトリを作ってその中へ入れてる。この構成はxserverも同じかな。
/www/example.com/
/www/example.net/
/setting/example.com/設定ファイル.inc.php
/setting/example.net/設定ファイル.inc.php