如何使用htaccess文件在php中重写url

时间:2014-03-22 15:28:57

标签: php .htaccess url url-rewrite-module

在我的项目中添加.htaccess文件后,

分页无效。

分页代码是:

if ($page > 0) {
            $last = $page - 2;
            echo "<a href=" . $this->SITE_URL . "categories/page/$last>Previous</a>";
            echo "<a href=" . $this->SITE_URL . "categories/page/$page>Next</a>";
        } else if ($page == 0) {
            echo "<a href=" . $this->SITE_URL . "categories/page/$page>Next</a>";
        } else if ($left_rec < $rec_limit) {
            $last = $page - 2;
            echo "<a href=" . $this->SITE_URL . "categories/page/$last>Previous</a>";
        }

.htaccess file have

RewriteRule categories category.php

RewriteRule categories/page/(.*)/ category.php?page=$1
RewriteRule categories/page/(.*) category.php?page=$1

当我点击类别链接时,它会显示100个类别,网址为

hostname / site1 / categories

但是当我点击下一个链接时 它将显示100个类别的相同内容,网址为

主机名/ SITE1 /类别/页/ 0

2 个答案:

答案 0 :(得分:0)

  1. 我认为问题出在第一次点击类别按钮时,href属性的值为&#34; hostname / site1 / categories / page / 0&#34;,检查$ page的值是什么时候你第一次加载这个页面。
  2. 您可以删除重复的重写规则。

答案 1 :(得分:0)

我得到了我的问题的答案,我在这里发帖是因为帮助其他开发人员有同样的问题。

如果您有相同的quote.php页面和您的网址

站点1 /测试/报价/类别/

站点1 /测试/报价/类别/爱引号

站点1 /测试/报价/类别/爱引号/页/ 1

并在.htaccess文件中添加这些规则。

RewriteRule quote / category /(。)/ page /(.)/ quote.php?category = $ 1&amp; page = $ 2 [NS]

RewriteRule引用/类别/(。)/ page /(.)quote.php?category = $ 1&amp; page = $ 2 [NS]

RewriteRule quote / category /(.*)/$ quote.php?category = $ 1 [L]

RewriteRule quote / category /(.*)$ quote.php?category = $ 1 [L]