wp-settings.php (5) $_SERVER その他

2009 年 6 月 29 日 月曜日  【 カテゴリー: wordpress構造解析 , wp_root


「wp-settings.php」の続きをみていきます。
処理の意味も詳しくみていく予定でしたが、解析中に2.8がリリースされたのでとりあえず2.7の流れだけみていきます。
処理の詳しい内容は2.8の解析で行いたいと思います。

※wordress2.7で解析しています。

【 前回まで 】
phpのメモリ上限の設定
「magic_quotes_runtime」「magic_quotes_sybase」の設定
「register_globals」が「ON」の場合のセキュリティー対策
IISサーバでの、$_SERVER['REQUEST_URI'] の調整
$_SERVER['SCRIPT_FILENAME'] の調整
analyze08

では「wp-settings.php」の続きをみていきます。


⑥ $_SERVER['PATH_INFO'] の破棄
// Fix for Dreamhost and other PHP as CGI hosts
if (strpos($_SERVER['SCRIPT_NAME'], 'php.cgi') !== false)
	unset($_SERVER['PATH_INFO']);

コメントをみてみると, 「Dreamhostとその他ホスティングサーバのCGI型PHPの調整」と書かれています。
「Dreamhost」について調べてみましたが、アメリカの大手ホスティングサーバのようです。
処理自体は、実行ファイルに「php.cgi」という文字列が含まれていれば、$_SERVER['PATH_INFO']を破棄しているだけです。
なぜ、$_SERVER['PATH_INFO'] を破棄しているのかはよくわかりませんでした。
$_SERVER['PATH_INFO'] の問題点について書かれているサイトがあったので紹介しておきます。記事は少し古いです。

WikiFan - CGI/環境変数PATH_INFOとその問題点について
PATH_INFO Changes in the CGI Environment


⑦ $_SERVER['PHP_SELF'] の調整
// Fix empty PHP_SELF
$PHP_SELF = $_SERVER['PHP_SELF'];
if ( empty($PHP_SELF) )
	$_SERVER['PHP_SELF'] = $PHP_SELF = preg_replace("/(\?.*)?$/",'',$_SERVER["REQUEST_URI"]);

$_SERVER['PHP_SELF'] が取得できなければ、同じ値を他の方法から取得して代入しています。

preg_replace("/(\?.*)?$/",'',$_SERVER["REQUEST_URI"])

ですから、アクセスしたURL(REQUEST_URI)から、正規表現「/(\?.*)?$/」に該当する部分を空にしています。
正規表現をみてみると「?以降の文字」みたいなので引数を削除しているようです。
$_SERVER["PHP_SELF"] や $_SERVER["REQUEST_URI"] にどのような値が代入されるかは
taka.at/blog」がサーバによる値を比較していましたので参考にしてください。


にほんブログ村 IT技術ブログ Webサイト構築へ
にほんブログ村
【WEBサイト構築・プログラムブログ】
ランキング参加中!よろしければ「クリック」お願いします。
にほんブログ村 IT技術ブログ プログラム・プログラマへ
にほんブログ村
2009 年 6 月 29 日 月曜日  【 カテゴリー: wordpress構造解析 , wp_root

コメントをどうぞ

※管理者による確認後に表示されます。表示までしばらくお待ちください。