分页的URL重写不起作用.htaccess?

时间:2016-05-26 21:12:30

标签: php .htaccess mod-rewrite pagination

我有以下网址index.php?page=1我希望它为index.php/page/1

到目前为止,我有这个

RewriteEngine on

RewriteRule ^page/([^/]*)$ index.php?page=$1 [L]

我的分页链接如下所示:

$numbers.='<li><a class="active" href="?page='.$i.'">'.$i.'</a></span></li>'

如果我使用它,它不会重写Url。

如果我将我的分页改为

$numbers.='<li><a class="active" href="?page/'.$i.'">'.$i.'</a></span></li>'

分页停止工作,我的结果很奇怪。知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

您可以使用以下RewriteRule:

RewriteRule ^index.php/page/([0-9]+)$ index.php?page=$1 [L]

和链接:

<li><a class="active" href="/index.php/page/'.$i.'">'.$i.'</a></li>

如果您不想在我们的链接中使用,请排除index.php/

更新:

好的,如果你真的需要你的分页链接看起来像"?page/2"那么你可以删除重写规则并使用以下而不是$_GET['page']intval(explode("?page/", $_SERVER["REQUEST_URI"])[1]) - 这基本上将URL拆分为?page /并返回它后面的任何东西作为整数 - 在PHP&gt; = 5.4中工作。顺便说一句。这是分页链接结构的非常糟糕的实现......但它会起作用