获取当前的域名
我有我的网站在服务器上
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调用。
我知道这可能听起来微不足道,但这是一个很容易绊倒的常见问题。