Доброго времени суток всем форумчанам. Такая вот задача передо мной стоит: есть url: http://domen.ru/index.php?rubric=1 Легко переделать с помощью mod_rewrite в более красивый и удобный http://domen.ru/rubric/1 RewriteRule ^rubric/(.*)$ /index.php?rubric=$1 Но вот если у меня подкатегория к рубрике имеет вид http://domen.ru/index.php?rubric=1&subrubric=2 то по идеии RewriteRule ^rubric/(.*)/(.*)$ /index.php?rubric=$1&subrubric=$2 но мне нужно чтобы два этих выражния работали одновременно. Т.е. если переменная subrubric не задана, то apache преобразовывал бы по правилу RewriteRule ^rubric/(.*)$ /index.php?rubric=$1 а если subrubric задана, то по правилу RewriteRule ^rubric/(.*)/(.*)$ /index.php?rubric=$1&subrubric=$2 Помогите реализовать. Заранее благодарен.
Правила реврайта иерархичны: что первое сошлось, то первично. Это во-первых. Во-вторых, лучше указывать более жёсткие правила, маска (.*) слишком абстрактна. Нужны цифры пиши ([0-9]+). Код (Text): RewriteRule ^rubric/([0-9]+)/([0-9]+)$ /index.php?rubric=$1&subrubric=$2 [L] RewriteRule ^rubric/([0-9]+)$ /index.php?rubric=$1 [L]
Правила реврайта: что первое сошлось, то и пользуем. Это во-первых. Во-вторых, лучше указывать более жёсткие правила, маска (.*) слишком абстрактна. Нужны цифры - пиши ([0-9]+). Код (Text): RewriteRule ^rubric/([0-9]+)/([0-9]+)$ /index.php?rubric=$1&subrubric=$2 [L] RewriteRule ^rubric/([0-9]+)$ /index.php?rubric=$1 [L] [/quote]