我的代码非常简单,但问题是每当我单击锚标记
时,它都会自动附加到 url 路径,从而导致页面不存在。
例如
<li> <a href="blog/tag?cat=<?= $singleTag['id'];?>"
class="d-flex text-capitalize">
<p><?= $singleTag['name']; ?></p>
</a> </li>
它会假设我正在尝试导航到
博客/博客/标签?猫=东西
我真的不知道第一个/blog
来自哪里,我查看了其他答案,他们建议在链接前面
添加//双反斜杠,但这不起作用,因为我试图引用本地文件。
我的路线文件
<?php
$router->get('','controllers/index.php');
$router->get('about','controllers/about.php');
$router->get('contact','controllers/contact.php');
$router->get('events','controllers/events.php');
$router->get('event/detail','controllers/event-detail.php');
$router->get('news','controllers/news.php');
$router->get('news/detail','controllers/news-detail.php');
$router->get('members','controllers/members.php');
$router->get('blog','controllers/blog.php');
$router->get('blog/detail','controllers/single-blog.php');
$router->get('blog/tag','controllers/all-blog-tags.php');
$router->get('oops','controllers/error-page.php'); ?>
我的请求类
<?php
class Request
{
public static function uri()
{
// dd(parse_url($_SERVER['REQUEST_URI'],PHP_URL_QUERY));
$urlQuery = parse_url($_SERVER['REQUEST_URI'],PHP_URL_QUERY);
if (strpos($urlQuery, 'slug=') !== false) {
$GLOBALS['slug'] = $urlQuery;
}
if (strpos($urlQuery, 'cat=') !== false) {
$GLOBALS['cat'] = $urlQuery;
}
return ( trim(parse_url($_SERVER['REQUEST_URI'],PHP_URL_PATH),'/'));
}
public static function method()
{
return ($_SERVER['REQUEST_METHOD']);
}
} ?>
我的路由器类
<?php
class Request
{
public static function uri()
{
// dd(parse_url($_SERVER['REQUEST_URI'],PHP_URL_QUERY));
$urlQuery = parse_url($_SERVER['REQUEST_URI'],PHP_URL_QUERY);
if (strpos($urlQuery, 'slug=') !== false) {
$GLOBALS['slug'] = $urlQuery;
}
return ( trim(parse_url($_SERVER['REQUEST_URI'],PHP_URL_PATH),'/'));
}
public static function method()
{
return ($_SERVER['REQUEST_METHOD']);
}
}