如何检查 url 是否是带有 php 和 mod_rewrite 参数的主页



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

我刚刚遇到了这个函数,但是在尝试了Facebook链接后,它的返回为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

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

  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 更改数组以满足您的需求。

最新更新