mod_rewrite для необязательных параметров Get

#apache #.htaccess #mod-rewrite

#apache #.htaccess #мод-перезапись

Вопрос:

 RewriteRule ^category/([0-9]{1,2})/?$  /category.php?id=$1
  

^ Который перезаписывает в:
/category/<number>/

Что я должен добавить для НЕОБЯЗАТЕЛЬНОГО номера страницы? category.php?id=2amp;page=2 . Означает /category/<number>/ равно /category/<number>/page-1/

Ответ №1:

Чтобы использовать разбивку на страницы, вам придется добавить дополнительный параметр в URL. Если вы хотите /category/<number>/ перейти к определенному идентификатору и /category/<number>/ перейти на определенную страницу, у вас возникнет конфликт.

Что вам нужно сделать, так это:

 RewriteRule ^category/([0-9] )/?$  /category.php?id=$1amp;page=1 [NC,L]
RewriteRule ^category/([0-9] )/page-([0-9] )/?$  /category.php?id=$1amp;page=$2 [NC,L]
  

Это означает, что при использовании /category/<number>/ он переходит к определенному идентификатору и загружает страницу # 1, а затем вы можете загрузить определенную страницу с помощью /category/<number>/<page>/ .

Комментарии:

1. однако есть один вопрос, ([0-9] ) включает ли он двух-трехзначные числа? Спасибо!

2. это означает одно или несколько чисел