我有一个非常自定义的网站,设置在子域名上; sitename.domain.com 并且它有一些页面(所有子域名都相同) sitename.domain.com/this-page 。每个网站都有“/ this-page”。
我们有人对使用我们开发的一些东西感兴趣,但他们对使用子目录感到满意; domain.com/sitename 当然也有 domain.com/sitename/this-page 。
我的问题是,我有一些代码
$sN = 'http://www.' . $_SERVER['HTTP_HOST'];
$PAGE = $sN . '/this-page/';
有没有办法区分子域名和子目录?
$setup = "GET THE HOME PAGE, REGARDLESS OF SETUP"
if($setup ( CONTAINS www.X.X.com)) { //do the code above }
else if ($setup ( CONTAINS www.X.com/X)) { //do different code }
答案 0 :(得分:2)
[编辑] 尝试http://www.php.net/manual/en/reserved.variables.server.php#100881的解决方案,但对我不起作用,所以我这样做了:
<?php
$sitename = 'sitename';
if (strpos($_SERVER['HTTP_HOST'],$sitename)!==false){
echo 'you are in http://'.$_SERVER['HTTP_HOST'] . '/';
// you are in http://sitename.domain.com/
} else {
$path = explode('/',$_SERVER['PHP_SELF']);
unset ($path[count($path)-1]);
echo 'you are in http://' . $_SERVER['HTTP_HOST'] . implode('/',$path) .'/';
// you are in http://www.domain.com/sitename/
}
?>
答案 1 :(得分:1)
@elcodedocle的答案是更好的方法。当他们提出这个解决方案时,我最终得到了一个(yuckier)解决方案。
//Let's grab the current url for other uses
$cur = 'http://www.' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
//Is this subdomains or subdirectories?
$TYPE = explode('.', $cur);
if(isset($TYPE[3])){
//Yay! It's subdomains! not stupid subdirectories!
$this_root = 'http://www.' . $_SERVER['HTTP_HOST'];
} else {
//Boo.... It's stupid subdirectories.... ;o(
$chunks = explode('/', $TYPE[2]);
$this_root = 'http://www.' .$TYPE[1]. '.' .$chunks[0]. '/' .$chunks[1];
}
?>
这也有效,但它不是一个优雅的解决方案。我最后使用了上面代码的略微修改版本,但对于那些你想知道的,这是我在重新加载SO之前到达那里的方式。 :)