我想创建一个带分页的类别路径。网址将如下;
所有路径都应该使用或不使用尾部斜杠(如果可能)
/category/entertainment-and-music/ /category/entertainment-and-music/music/
(代表“音乐”类别“下 娱乐和音乐“)
/category/entertainment-and-music/5/
(代表第5页“ent。and 音乐“)
/category/entertainment-and-music/music/5/
(代表第5页“ent。and 音乐/音乐“)
我尝试了类似的东西但是没有用
RewriteRule ^category/(.*)/? /category.php?slug=$1&page=1
RewriteRule ^category/(.*)/(.*)/? /category.php?slug=$1&page=$2
我怎样才能做出像这样灵活的事情?
提前致谢...
答案 0 :(得分:2)
RewriteRule ^category/([A-Za-z0-9_-]+)([/]?)$ /category.php?slug=$1&page=1
RewriteRule ^category/([A-Za-z0-9_-]+)/([0-9]+)([/]?)$ /category.php?slug=$1&page=$2
RewriteRule ^category/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/([0-9]+)([/]?)$ /category.php?slug=$1&subcat=$2&page=$3
第一条规则应涵盖仅指定类别的情况。
第二条规则应涵盖提供页面的类别。
第三条规则应涵盖类别,子类别和页面。关于你如何填充子类别,我并不是很清楚,所以我只是把它作为slug之后的另一个参数写出来。
所有这些都允许使用可选的尾部斜杠。
答案 1 :(得分:1)
看起来你的第一个正则表达式也会匹配你的第二个正则表达式。
/ category / slugname / 7 /将匹配。*,$ 1设置为“slugname / 7”
尝试这样的事情:
RewriteRule ^category/([^/]*)/? /category.php?slug=$1&page=1
RewriteRule ^category/([^/]*)/(.*)/? /category.php?slug=$1&page=$2
至少,或者稍微收紧你的比赛,如下:
RewriteRule ^category/([a-zA-Z0-9_-]+)/? /category.php?slug=$1&page=1
RewriteRule ^category/([a-zA-Z0-9_-]+)/([0-9]+)/? /category.php?slug=$1&page=$2
这会限制你的slu to至少是一个字母数字字符,允许“_”和“ - ”,你的页码也必须是数字。