Назад | Перейти на главную страницу

Подпапка даты mod_rewrite не работает

У меня странная проблема, и я недоумеваю. Я начну с того, что регулярное выражение - не моя сильная сторона. Мне нужна обратная связь от сообщества, чтобы начать работу.

Если у меня есть следующий URL:

  http://example.com/2015-03-25/  

Я хочу запустить их через файл PHP. Это правило отлично работает со следующим mod_rewrite:

 RewriteRule ^/?([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]

Но я хочу переместить папку в:

  http://example.com/my_pages/2015-03-25/

Это правило не работает:

 RewriteRule ^/my_pages/?([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]

Эти правила тоже не работают:

 RewriteRule ^my_pages/?([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]

Что мне здесь не хватает? Мы очень ценим помощь сообщества.

ОБНОВИТЬ!

Вот что я сделал, чтобы исправить проблему:

RewriteRule ^my_pages\/([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]

vs.

RewriteRule ^/my_pages/?([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]

Как ни странно, в Apache 2.4 действительно был правильный синтаксис.

RewriteRule ^my_pages/?([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]  

ОБНОВИТЬ!

Вот что я сделал, чтобы исправить проблему:

RewriteRule ^my_pages\/([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]

vs.

RewriteRule ^/my_pages/?([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]

Как ни странно, в Apache 2.4 действительно был правильный синтаксис.

RewriteRule ^my_pages/?([0-9]){4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/(.*)$ show_page.php?page=$3 [NC,L]