获取当前的域名

我有我的网站在服务器上

http://www.myserver.uk.com 

为此,我有两个域:

 http://one.com 

 http://two.com 

我想用PHP当前域获得,但如果我使用$_SERVER['HTTP_HOST']那么这显示我

 myserver.uk.com 

代替:

 one.com or two.com 

我如何获得域名,而不是服务器名称? 我有PHP版本5.2

尝试使用这个: $_SERVER['SERVER_NAME']

或parsing

 $_SERVER['REQUEST_URI'] 

编辑:

apache_request_headers()

使用$_SERVER['HTTP_HOST']得到我(子域。)maindomain.extension。 对我来说似乎是最简单的解决scheme。

编辑:如果你实际上通过一个iFrame“redirect”,你可以添加一个get参数来声明这个域。

 <iframe src="myserver.uk.com?domain=one.com"/> 

然后你可以设置一个会话variables,在整个应用程序中保存这些数据。

最好的用法是

 echo $_SERVER['HTTP_HOST']; 

而且可以这样使用

 if(strpos( $_SERVER['HTTP_HOST'], 'banana.com') !== false){ echo "Yes this is indeed the banana.com domain"; } 

下面的代码是在结构化HTML输出中查看$ _SERVER中所有variables的好方法,突出显示关键字,在执行后直接停止。 因为我有时会忘记使用我自己 – 我认为这可以是漂亮的。

 <?php // change banana.com to the domain you were looking for.. $wordToHighlight= "banana.com"; $serverVarHighlighted = str_replace( $wordToHighlight, '<span style=\'background-color:#883399; color: #FFFFFF;\'>'. $wordToHighlight .'</span>', $_SERVER ); echo "<pre>"; print_r( $serverVarHighlighted ); echo "</pre>"; exit(); ?> 

试试$_SERVER['SERVER_NAME'] 。 提示:创build一个调用函数phpinfo()的PHP文件,并参阅“PHPvariables”部分。 有一堆我们从来没有想过的有用的variables。

迟到的答案,但在这里:

 $currentDomain = preg_replace('/www\./i', '', $_SERVER['SERVER_NAME']); 

它会给你一个干净的域名,没有www

我知道这可能不是完全在这个问题上,但根据我的经验,我发现将当前URL的WWW内存存储在一个variables中是有用的。

编辑:另外,请看下面我的评论,看看这是什么。

在确定是使用“www”分派Ajax调用还是不使用以下情况时,这一点非常重要:

 $.ajax("url" : "www.site.com/script.php", ... $.ajax("url" : "site.com/script.php", ... 

调用Ajax调用时,域名必须与浏览器地址栏中的域名相匹配,否则在控制台中会出现Uncaught SecurityError

所以我想出了这个解决scheme来解决这个问题:

 <?php substr($_SERVER['SERVER_NAME'], 0, 3) == "www" ? $WWW = true : $WWW = false; if ($WWW) { /* We have www.example.com */ } else { /* We have example.com */ } ?> 

然后,根据$ WWW是否为true,或者false运行正确的Ajax调用。

我知道这可能听起来微不足道,但这是一个很容易绊倒的常见问题。