什么$_SERVER变量提供完整的URL



可能重复:
获取当前URL
PHP和调用url?

假设有人在找

http://subdomain.domainname.com/somedirectory/somefile.htm

$_SERVER变量包含什么http://subdomain.domainname.com/somedirectory/somefile.htm

// Get HTTP/HTTPS (the possible values for this vary from server to server)
$myUrl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && !in_array(strtolower($_SERVER['HTTPS']),array('off','no'))) ? 'https' : 'http';
// Get domain portion
$myUrl .= '://'.$_SERVER['HTTP_HOST'];
// Get path to script
$myUrl .= $_SERVER['REQUEST_URI'];
// Add path info, if any
if (!empty($_SERVER['PATH_INFO'])) $myUrl .= $_SERVER['PATH_INFO'];
// Add query string, if any (some servers include a ?, some don't)
if (!empty($_SERVER['QUERY_STRING'])) $myUrl .= '?'.ltrim($_SERVER['REQUEST_URI'],'?');
echo $myUrl;

是我对此最有弹性的常规。

您可以尝试:

echo '<pre>';
print_r($_SERVER);
echo '</pre>';

$_SERVER['HTTP_HOST']$_SERVER['SCRIPT_NAME']$_SERVER['PHP_SELF']的组合应该是您想要的。

您需要自己构建它;

echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

您还可以使用$_SERVER['HTTPS']来检测是HTTP还是HTTPS。

我建议使用$_SERVER['REQUEST_URI'],因为这正是用户在进行任何重写或其他操作之前想要的,并且包括GET变量

$_SERVER中没有包含完整的url。但是你可以使用这个代码:

$url = "http://" . $_SERVER['HTTP_HOST'] . "/" . $_SERVER['PHP_SELF'] . "/" . $_SERVER['QUERYSTRING'] . "/"; 

相关内容

  • 没有找到相关文章

最新更新