获取域名(不含协议的基本url)

问题描述 投票:0回答:3

如何获取应用域名? (我的意思是没有协议的基本网址

http://
https://

因此,如果应用程序安装在“http://sub.example.com/app”上,我想获取“sub.example.com”。

cakephp
3个回答
8
投票

有 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
投票

我在位于 config 文件夹中的 config.php/bootstrap.php 中使用它来获取带有文件夹的 url 应用程序域

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

0
投票
parse_url(Router::fullBaseUrl(), PHP_URL_HOST)
© www.soinside.com 2019 - 2024. All rights reserved.