【问题标题】:How to check if url is homepage with parameters in php and mod_rewrite如何检查 url 是否是带有 php 和 mod_rewrite 参数的主页
【发布时间】:2019-05-08 21:18:09
【问题描述】:

我需要编写一个函数来检查 URL 是否是主页,即使用户使用参数也是如此。 Apache 的 mod_rewrite 已启用以支持漂亮的 url。

我刚刚遇到了这个函数,但是在尝试使用 facebook 链接后,它在应该为 true 时返回 false。

function isHomePage(){
    if(trim($_SERVER['REQUEST_URI'])=='/'){
        return true;
    }
}

当前结果:

/ = true
/?id=someid = false
/page/ = false
/page/?id=someid = false

预期结果:

/ = true
/?id=someid = true
/page/ = false
/page/?id=someid = false

【问题讨论】:

  • 您检查的是外部 URL 还是您自己服务器上的页面?
  • 页面是我自己的服务器,没有外链

标签: php url mod-rewrite


【解决方案1】:

如果你的软件本身不知道它在哪里(这很奇怪),你需要解决两个问题:

  1. 获取 URL 路径,无需其他任何内容。
  2. 判断是否为首页。

第一个可以通过多种方式完成,但我认为最好的方法是在 $_SERVER['REQUEST_URI'] 上使用 parse_url(),这是为了访问页面而提供的 URI。

第二个完全取决于您发送到主页的 URL。这通常有多个 URL,因此您应该检查它们。

这将给出以下代码:

function isHomePage()
{
    $path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    return in_array($path, ['/', '/home.html', '/index']);
}

显然,您必须使用主页 URL 更改数组以满足您的需要。

【讨论】:

  • parse_url() 做到了。比较 $path 的结果后返回正确的值,非常感谢
猜你喜欢
  • 2011-03-26
  • 1970-01-01
  • 2011-04-21
  • 1970-01-01
  • 1970-01-01
  • 2019-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多