Да, все в порядке. Я думаю, что они могут быть объединены в одно правило, но в этом нет особой необходимости.
Вы можете оставить страницу как часть URL, вместо:
http://www.domain.com/users/online/friends/22/
просто есть:
http://www.domain.com/users/online/friends?page=22
и затем есть одно правило что-то вроде:
RewriteRule ^users/online/friends/?$ ./index.php?p=users.online.friends&s=8 [L,QSA]
для добавления строки запроса
Редактировать: Есть несколько способов уменьшить количество правил перезаписи, которые у вас есть.
Во-первых, используйте подстановочные знаки в терминах поиска, например:
RewriteRule ^users/(\w+)/(\w+)$ /index.php?p=users.$1.$2 [L,QSA]
уменьшит целый ряд правил.
Во-вторых, если вы передаете все через /index.php, просто рассмотрите возможность делегирования всех запросов:
RewriteRule ^(users/*)$ /index.php/$1 [L,QSA]
В этом правиле используется третий метод: вместо передачи информации о пути через параметр строки запроса, передайте его через дополнительную информацию о пути. К нему можно получить доступ через $_SERVER['PATH_INFO']
.
Это, как говорится, много правил не обязательно плохо. По крайней мере, это ясно обо всех ваших действиях. Однако вы должны остерегаться создания кошмара обслуживания.