为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 重写 URL 没有获得正确的访问权限

PHP 重写 URL 没有获得正确的访问权限

PHP
MM们 2022-06-17 09:54:17
我有 switch case php 页面来检测 $_GET 函数并在页面之间进行更改。$page = isset($_GET['p']) ? $_GET['p'] : null;switch ($page) {case "advertise":break;case "news":break;default:break;我尝试访问“新闻”,它可以使用http://example.com/?p=news访问。我还在其中创建了一个分页,以便它可以使用http://example.com/?p=news&page=1现在我想把 url 改成一个友好的http://example.com/news 我创建了这个 htaccessOptions +FollowSymLinks -MultiViewsRewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php?$1 [NC,L]它适用于通过http://example.com/news访问的基本“新闻”页面。问题是,我无法访问其之间的页面。http://example.com/news/page=2它会给我一个默认的“新闻”页面,而不提供该页面的任何页面。有人可以弄清楚,如何将友好的 SEO url 与 Switch case $_GET 和 htaccess 一起使用?============================编辑===================$seourl = $settings['seo_link'];if($seourl){    $main_page = explode('/', $_SERVER['REQUEST_URI']);    $page = substr(strtolower(preg_replace('([^a-zA-Z0-9-/])', '', $main_page[1])), 0, 20);    $page_cat = isset($main_page[3]) ? $main_page[3] : null;    $page_cat_name = isset($main_page[2]) ? $main_page[2] : null;    $page_val = isset($main_page[5]) ? $main_page[5] : null;}else{    $main_page = parse_url($_SERVER['REQUEST_URI']);    if (isset($main_page['query'])){        parse_str($main_page['query'], $url);    $pages = array();    foreach ($url as $key => $value) {        $pages[] = $url[$key];    }    $url_pages = array();    foreach ($url as $key => $value) {        $url_pages[] = $key;    }    $page = substr(strtolower(preg_replace('([^a-zA-Z0-9-/])', '', $pages['0'])), 0, 20);    }else{        $page = '';    }    $page_cat = isset($pages[1]) ? $pages[1] : null;    $page_cat_name = isset($url_pages[1]) ? $url_pages[1] : null;    $page_val = isset($pages[2]) ? $pages[2] : null;}通过使用它,我将能够打开和关闭 SEO url。如果SEO url 关闭(0)。我可以访问http://example.com/?p=news甚至它的页面http://example.com/?p=news&page=2。工作没有任何问题。但是,如果SEO 网址打开(1)。我可以访问https://example.com/news但无法访问它的页面http://example.com/news/page/2。它总是会给我这个页面的结果https://example.com/news谁能帮我。请
查看完整描述

1 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

好吧,我找到了解决此问题的方法。

首先我们需要在函数 seo url 中添加这段代码

$paginates = isset($_GET['page']) ? $_GET['page'] : 1;

然后你的网址就会像一个魅力一样工作。谢谢大家帮助我。


查看完整回答
反对 回复 2022-06-17
  • 1 回答
  • 0 关注
  • 63 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信