2002-03-26 19:08:56 UTC

Для того чтобы URL были человеческими при выборе периода, за который производится выборка чего-либо (в данном случае новостей) из базы, решил написать RewriteRule для модуля mod_rewrite.

Задача состоит в том, чтобы преобразовать URL вида /?y=2002&m=3&d=26 к /2002-3-26.html ну или если период не день, а месяц, то к /2002-3.html

RewriteRules в этом случае будут такими:

RewriteEngine on
RewriteRule   ^(.+)/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})\.html$  /$1/?y=$2&m=$3&d=$4
RewriteRule   ^(.+)/([0-9]{4})-([0-9]{1,2})\.html$  /$1/?y=$2&m=$3

Результат можно увидеть в разделе новостей.

2002-03-26 19:08:56 UTC apache mod_rewrite web