それほど単純ではないようです。この人気のある関数を使用して、ページの完全なURLを取得します。
private function getBaseUrl() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
私のPHP5はWindowsサーバー上にあります!そのため、$ _SERVER["REQUEST_URI"]は空です。私はWindowsでこの回避策を使用しました:
function fixRequestURI() {
if(!isset($_SERVER['REQUEST_URI'])) {
$_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'];
if($_SERVER['QUERY_STRING']) {
$_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
}
}
}
しかし、それはちょっとうまくいきます。私の完全なURLは次のとおりです。
http://www.domain.com/web/en/contact/
不思議なことに、私は上記の私の機能の結果としてこれを取得します:
http://www.domain.com/directory1/web/en/contact/index.php?go=3
これは、いわゆる「directory1」であり、domain.comがマップされる私の物理ディレクトリです。私はその意味を理解していますが... document.location.hrefを使用するJavaScriptのように、修正や調整などを行わずに完全なURLを簡単に取得するにはどうすればよいですか?
ありがとう