我需要编写一个函数来检查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
如果你的软件本身不知道它在哪里(这很奇怪),你需要解决两个问题:
- 获取 URL 路径,而不使用任何其他内容。
- 确定它是否为主页。
第一个可以通过多种方式完成,但我认为最好的方法是在$_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 更改数组以满足您的需求。