Мод-переписать вопрос - PullRequest
       5

Мод-переписать вопрос

0 голосов
/ 29 августа 2009

Я хочу сделать путь категории с нумерацией страниц. URL будет следующим:

Все пути должны работать с косой чертой или без нее (если возможно)

/category/entertainment-and-music/

/category/entertainment-and-music/music/

(представляет категорию "музыка" под развлечения и музыка ")

/category/entertainment-and-music/5/

(представляет 5-ю страницу для "Ent. И музыка ")

/category/entertainment-and-music/music/5/

(представляет 5-ю страницу для "ent. And музыка / музыка ")

Я пробовал что-то подобное, но не работает

RewriteRule ^category/(.*)/? /category.php?slug=$1&page=1
RewriteRule ^category/(.*)/(.*)/? /category.php?slug=$1&page=$2

Как я могу сделать что-то гибкое?

Заранее спасибо ...

Ответы [ 2 ]

2 голосов
/ 29 августа 2009
RewriteRule ^category/([A-Za-z0-9_-]+)([/]?)$ /category.php?slug=$1&page=1
RewriteRule ^category/([A-Za-z0-9_-]+)/([0-9]+)([/]?)$ /category.php?slug=$1&page=$2
RewriteRule ^category/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/([0-9]+)([/]?)$ /category.php?slug=$1&subcat=$2&page=$3

Первое правило должно охватывать случаи, когда они просто указывают категорию.

Второе правило должно охватывать категорию с предоставленной страницей.

Третье правило должно охватывать категорию, подкатегорию и страницу. Я не совсем понял, как вы хотели, чтобы подкатегория была заполнена, поэтому я просто записал это в качестве еще одного аргумента после слаг.

Все они допускают дополнительную косую черту.

1 голос
/ 29 августа 2009

Похоже, что ваше первое регулярное выражение также соответствует всему, что будет поймано вашим вторым.

/ category / slugname / 7 / будет соответствовать. * С $ 1, установленным в "slugname / 7"

Попробуйте что-то вроде этого:

RewriteRule ^category/([^/]*)/? /category.php?slug=$1&page=1
RewriteRule ^category/([^/]*)/(.*)/? /category.php?slug=$1&page=$2

По крайней мере, или немного подтяните спички, например:

RewriteRule ^category/([a-zA-Z0-9_-]+)/? /category.php?slug=$1&page=1
RewriteRule ^category/([a-zA-Z0-9_-]+)/([0-9]+)/? /category.php?slug=$1&page=$2

Это ограничило бы ваши слагов как минимум одним буквенно-цифровым символом, допуская также "_" и "-", и номера ваших страниц должны были бы быть ну, ну, ну.

...