【问题标题】:htaccess pagination modrewritehtaccess 分页 modrewrite
【发布时间】:2013-03-06 11:20:48
【问题描述】:

在一些分页和 mod-rewrite 方面寻求帮助 好的,所以我有一个看起来像这样的网址

www.website.com/page.php?phone=111-393-4949

我正在重写它看起来像这样......

www.website.com/701-625-5444.php

有了这个

RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+) page.php?number=$1-$2-$3 [L,QSA]

我现在在将分页添加到 mod 重写时遇到了一些问题。 我真的不太确定我需要在这里做什么,但这就是我想出的

RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)/([^/]*) page.php?number=$1&page=$2 [L,QSA]

应该输出..

www.website.com/494-949-9494/1.php

我做错了什么?

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

    每个() 对都是一个捕获组。由于您已经为电话号码设置了三个() 组,因此您添加的([^/]*) 将被捕获到$4

    RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)/([^/]*)$ page.php?number=$1-$2-$3&page=$4 [L,QSA]
    

    如果分页是可选的,则在最后一段周围添加一个可选的非捕获组(?:)?

    RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)(?:/([^/]*))?$ page.php?number=$1-$2-$3&page=$4 [L,QSA]
    

    我会注意到您的RewriteRule 没有像您的示例www.website.com/701-625-5444.php 那样强制包含.php。那看起来像

    RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)\.php$ page.php?number=$1-$2-$3 [L,QSA]
    # Or...
    RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)(?:/([^/]*))?\.php$ page.php?number=$1-$2-$3&page=$4 [L,QSA]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      • 1970-01-01
      • 2021-08-16
      • 2021-08-16
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      相关资源
      最近更新 更多