2013-04-14 2 views
0

Попытка написать правила перезаписи для захвата двух переменных GETПереписать .htaccess 2 Переменные 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, но это некрасиво)

ответ

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».

+0

Это потрясающе работает хорошо. Я вижу! Жадному мальчику нужно есть больше переменных !!! ти –

Смежные вопросы