Вопрос по mod_rewrite

Ally

Новичок
Вопрос по mod_rewrite

Приветствую

Помогите с написанием правильного RewriteRule
Есть структура каталогов: Catalog/<XX>/<YYYYY>.html, где XX - это перые две цифры числа YYYYY.

Нужно, чтобы адрес Catalog/<YYYYY>.html редиректился на Catalog/<XX>/<YYYYY>.html.

Можно ли вообще такое сделать с помощью mod_rewrite?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Как пробовал?
 

Ally

Новичок
Насколько я понимаю, это должно выглядеть примерно так:
RewriteRule Catalog/^???/([0-9]+)$.html Catalog/$1.html [L]

где вместо ??? должно быть выражение, выбирающее из $1 первые два символа.

Как это сделать?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Ally
де вместо ??? должно быть выражение, выбирающее из $1 первые два символа.
А реврайт то здесь причем?
Урл
Catalog/^???/([0-9]+)$.html
формируется твоим скриптом.
Вот в нем и получай первые 2 символа от
А вот реврайт, при запросе твоего урла вида

Должен его _перенаправить_ скрипту
При этом урл
в адресной строке останется неизменным.

-~{}~ 14.04.09 15:05:

Стоп.
Тебе, наверное, сначало сюда нужно
http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html
 

Фанат

oncle terrible
Команда форума
мне кажется, у него наоборот, в адресе цифр нет, а на диске -есть
 

Ally

Новичок
Да, цифры на диске

физический каталог Catalog/23/23108.html
а адрес Catalog/23108.html
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Ally
RewriteRule Catalog/(две цифры)(остальные цифры)\.html /catalog/__обратная_связь_1/_обратная_связь_1_обратная_связь_2.html
 

Ally

Новичок
Я понял первый свой косяк:

выражение должно быть наоборот
RewriteRule Catalog/^([0-9]+)$.html Catalog/???/$1.html [L]

Вместо ??? требуется подставить первый две цифры от $1
Т.е. в качестве подстановки должно быть некое выражение, берущее первые два символа от $1.

-~{}~ 14.04.09 16:49:

RewriteRule Catalog/^([0-9][0-9])([0-9]+)$.html Catalog/$1/$1$2.html [L]

-~{}~ 14.04.09 18:09:

Все получилось. Всем спасибо за помощь!
 
Сверху