htaccess分页mod_rewrite

时间:2013-03-06 02:38:59

标签: .htaccess mod-rewrite

寻找一些分页和mod重写的帮助 好的,所以我有一个看起来像这样的网址

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

我做错了什么?

1 个答案:

答案 0 :(得分: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并没有像示例.php那样强行包含www.website.com/701-625-5444.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]