尝试编写重写规则以捕获两个GET变量
http://stackoverflow.com/blogs/category/general/1
RewriteRule ^blogs/category/(.+)/?$ blogs.php?category=$1 [PT,L,QSA]
RewriteRule ^blogs/category/(.+)/([0-9]+)/?$ blogs.php?category=$1&page=$2 [PT,L,QSA]
但是,当我从标题中抓取它们时,它看起来像这样吗?
$_GET['category'] = "general/1";
$_GET['page'] = "";
正如您所看到的,我有两个规则,一个用于提供类别,一个用于何时提供页码。我不确定这种方法可能是错的。
我在这里做错了什么?如何使用重写规则正确分离这些变量(我知道我可以在php中破解它,但这很难看)
答案 0 :(得分:1)
我认为您只需要切换它们,以便首先处理更具体的一个:
RewriteRule ^blogs/category/(.+)/([0-9]+)/?$ blogs.php?category=$1&page=$2 [PT,L,QSA]
RewriteRule ^blogs/category/(.+)/?$ blogs.php?category=$1 [PT,L,QSA]
进一步解释一下:如果没有另外指定,所有正则表达式都是贪婪的。这意味着,正则表达式试图尽可能多地获取。 (。+)匹配“general / 1”。