今天在使用后台的Rewrite 伪静态的时候,才发现,只有(:any)和(:num)两个。这还算正常吧。
只是,一个url只能有这两个的其中一个。当我想在分页中使用的时候,就没辙了。
或者是我这个需求有点特别吧。
例子:
原来的地址是:
www.xxx.com/active/question/9
这个9,是active的一个id,question是这个id下的讨论。
www.xxx.com/active/question/id-9__page-2
转换后的地址是:
www.xxx.com/active/9/question.html
www.xxx.com/active/9/question__page-2.html
发现这么写是不行的
/active/question/id-(:num)__page-(:num)===/active/(:num)/question__page-(:num).html
折腾了半天,实在没办法,于是就往
function get_request_route($positive = true)
里面添加了一条page的规则
$replace_array = array("(:any)" => "([^\"'&#\?\/]+[&#\?\/]*[^\"'&#\?\/]*)", "(:num)" => "([0-9]+)", "(:page)" => "([\d]+)");//这里增加了page
//...
$replace = str_replace('(:page)', "\$2", $replace);//这是加上的。
$replace = str_replace(array_keys($replace_array), "\$1", $replace);
最终以/active/question/id-(:num)__page-(:num)===/active/(:num)/question__page-(:page).html
告终。
虽然解决办法不完美,总数是可以使用了。
建议这块完善一下,可以支持多参数
阅读全文
收起全文