Пардон за оффтоп - regexp в mod_rewrite не соображу...
Webnode 20.04.2011 17:47
/ 20.04.2011 17:47
Добрый день!
Проблема такая - привожу URL-ы к новому красивому виду, написал очередной внешний редиректор для RewriteMap, и он даже работает, да вот что-то правила в .htaccess только по одному работают..
Редиректор выдаёт готовую строку вида ?cat=1&subcat=2$page=3, на вход его кормлю полями разделёнными '~'
Логика такая (что хочу видеть как новый URL):
/catalog/ - это все товары.
/catalog/2 - это все товары, страница 2
/catalog/tv - это товары раздела tv, все.
/catalog/tv/3 - это товары раздела tv, страница 3.
/catalog/tv/lcd - это товары раздела tv, подраздел lcd.
/catalog/tv/lcd/4 - это товары раздела tv, подраздел lcd, страница 4.
Название разделов и подразделов могут содержать '-' как часть имени
страницы - только цифры. Может (или не может) быть конечный слэш '/'
.htaccess что лежит в /catalog :
RewriteEngine On
# parent category and sub cat of catalog - with page
RewriteRule ^([\w-]+)/([\w-]+)/(\d+)/?$ - [e=perm_name:$1~$2~$3]
RewriteRule ^(.*)$ /oldver/catalog.phtml${catalog_static_url:%{ENV:perm_name}} [L]
# parent category and sub cat of catalog - without page
RewriteRule ^([\w-]+)/([\w-]+)/?$ - [e=perm_name:$1~$2~]
RewriteRule ^(.*)$ /oldver/catalog.phtml${catalog_static_url:%{ENV:perm_name}} [L]
# parent category of catalog - with page
RewriteRule ^([\w-]+)/(\d+)/?$ - [e=perm_name:$1~~$2]
RewriteRule ^(.*)$ /oldver/catalog.phtml${catalog_static_url:%{ENV:perm_name}} [L]
# parent category of catalog - without page
RewriteRule ^([\w-]+)/?$ - [e=perm_name:$1~~]
RewriteRule ^(.*)$ /oldver/catalog.phtml${catalog_static_url:%{ENV:perm_name}} [L]
# just root of catalog - with page
RewriteRule ^(\d+)/?$ /oldver/catalog.phtml?pg=$1 [L]
# just root of catalog
RewriteRule ^$ /oldver/catalog.phtml [L]
Пробовал:
- Менять местами правила
- Заменять \d на [0-9], \w на [a-z] и прочее шаманство
- Ставить флаг s=100 рядом с L, типа, явно закончить.
- Написал на perl прогу - ко всем url применяю шаблоны, U*P получилось, "выстрелы" только в правильном месте были, чотко! :)
Подскажите, что не так?
Какие тонкости у этого ... модуля?
Заранее спасибо!
- Пардон за оффтоп - regexp в mod_rewrite не соображу..., Webnode 20.04.2011 17:47 / 20.04.2011 17:47