获取域名(没有协议的基本网址)

时间:2014-10-13 11:36:11

标签: cakephp

如何获取应用域名? (我的意思是没有协议http://https://

的基本网址

因此,如果应用已安装在' http://sub.example.com/app'上,我想获得&sub'example.com'。

2 个答案:

答案 0 :(得分:6)

PHP全局 $ _ SERVER ['HTTP_HOST'] - 这将返回没有协议的域,但不会给你一个子目录,例如:如果您的应用程序位于www.domain.com/myapp/app。

假设您指的是CakePHP应用程序(在问题上给出标记),您可以使用以下常量版本2.4:

  

FULL_BASE_URL

在2.4版中,您可以使用:

  

路由器:: fullbaseUrl()

这将返回带有http://或https://的基本URL。然后你可以做一个正则表达式替换来摆脱那个部分。

尝试:

function replace_http($url) {
    $pattern = "https{0,1}:\/{2}";
    return preg_replace($pattern, "", $url);
}

$baseUrl = replace_http(Router::fullBaseUrl());

答案 1 :(得分:1)

我在config.php / bootstrap.php中使用它,它位于config文件夹中以获取带文件夹的url app域

$_SERVER['HTTP_HOST'].dirname(dirname(dirname($_SERVER['PHP_SELF'])));