nginx переписать URL с датами и изменить формат

Я просто перемещаю свой блог в Ghost, и все было в порядке, за исключением того, что около 50% сообщений в моем блоге не работают из-за того, что дата не заполнена нулями, т.е.

старый формат сайта: http://www.example.com/blog/index.cfm/2013/8/9/my-slug

новый формат сайта: http://www.example.com/2013/08/09/my-slug

Удалить /blog/index.cfm было легко с помощью

location /blog/index.cfm {
    rewrite ^/blog/index.cfm(/.*)$ $1 last;
}

Но не могу придумать, как обнулить даты заполнения (а постов около 700).


person Andy Jarrett    schedule 16.12.2014    source источник


Ответы (1)


Поставил несколько рерайтов.

location /blog/index.cfm {
    # 2013/1/1
    rewrite ^/blog/index.cfm(/\d+)/(\d)/(\d)(/.*)?$ $1/0$2/0$3$4 last;
    # 2013/1/11
    rewrite ^/blog/index.cfm(/\d+)/(\d)/(\d\d)(/.*)?$ $1/0$2/$3$4 last;
    # 2013/11/1
    rewrite ^/blog/index.cfm(/\d+)/(\d\d)/(\d)(/.*)?$ $1/$2/0$3$4 last;
    # all other
    rewrite ^/blog/index.cfm(/.*)$ $1 last;
}
person Alexey Ten    schedule 16.12.2014
comment
У меня немного другие потребности в старом формате сайта: example.com/blog /index.cfm/2013/03/my-slug новый формат сайта: example.com/ my-slug Как сделать редирект через 301? Вы можете помочь? - person aholbreich; 06.10.2015
comment
@shuron, это очень просто, но не стесняйтесь задавать свои вопросы - person Alexey Ten; 06.10.2015
comment
@AlexeyTen сделал stackoverflow.com/questions/32977170 / - person aholbreich; 06.10.2015