Вопрос по mod_rewrite

  • Автор темы Автор темы Ally
  • Дата начала Дата начала

Ally

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

Приветствую

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

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

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

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

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

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

-~{}~ 14.04.09 15:05:

Стоп.
Тебе, наверное, сначало сюда нужно
http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html
 
мне кажется, у него наоборот, в адресе цифр нет, а на диске -есть
 
Да, цифры на диске

физический каталог Catalog/23/23108.html
а адрес Catalog/23108.html
 
Ally
RewriteRule Catalog/(две цифры)(остальные цифры)\.html /catalog/__обратная_связь_1/_обратная_связь_1_обратная_связь_2.html
 
Я понял первый свой косяк:

выражение должно быть наоборот
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:

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