【问题标题】:PHP - Efficient way to check if subdomain exists [duplicate]PHP - 检查子域是否存在的有效方法[重复]
【发布时间】:2012-10-06 10:57:10
【问题描述】:

可能重复:
PHP function to get the subdomain of a URL

我正在寻找一种有效的方法来判断 URL 中是否存在子域。

域名将始终是固定的,例如mydomin.com,但是如果没有设置子域,我需要重定向。

我的一个想法是,如果有多个句点 (.),则会设置一个子域,但我不确定如何实现。

非常感谢。

编辑:很抱歉没有说得太清楚。我没有当前的解决方案,但查看其他帖子我可以看到几个如何获取子域的示例,例如

array_shift(explode(".",$_SERVER['HTTP_HOST']));

但我不想要子域,只是为了检查一个是否存在。子域可以是任何东西。

【问题讨论】:

  • 您是否已经有了低效的解决方案?通常,当他们当前的解决方案不符合性能要求时,程序员会询问一些有效的东西。那么,你的当前是什么?
  • 你现在怎么样了?

标签: php url subdomain


【解决方案1】:

您可以使用parse_url 获取主机名。然后你用explode() 分解它:

function hasSubdomain($url) {
    $parsed = parse_url($url);
    $exploded = explode('.', $parsed["host"]);
    return (count($exploded) > 2);
}

在谷歌上你可以很容易地找到如何重定向某人。

【讨论】:

  • "someDomainName.co.uk" 怎么样?我不会说它有一个子域。但这会为这个函数返回true 否?
  • 只要检查 count() 是否大于 3,而不是 2。
  • 我想这是更好的答案:stackoverflow.com/a/288864/839332 不过还是谢谢。
【解决方案2】:

我宁愿使用 apache 重写引擎(或任何网络服务器重写过程):

# .htaccess 文件 RewriteCond %{HTTP_HOST} ^yourdomin\.com$ 重写规则 (.*) http://sub.yourdomin.com/$1 [R=301,L]

【讨论】:

    猜你喜欢
    • 2015-12-30
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    相关资源
    最近更新 更多