Я стремлюсь иметь некоторую старую работу URL с новым CMS, на который мы мигрируем, но это не может поддерживать чисто числовые краткие заголовки URL по некоторым причинам, таким образом, новая система имеет их как "/calendar/event/old-42" вместо "/calendar/event/42". Я хотел бы перенаправить эти чисто числовые URL к их новым кратким заголовкам. Вот то, что я имел в виду, чтобы сделать это:
location ~ /calendar/event/(\d+)$ {
rewrite ^/calendar/event/$1$ /calendar/event/old-$1 permanent;
}
Это, кажется, не работает, и всего 404 с, когда я перехожу к "/calendar/event/42". Какие-либо идеи?
Попробуйте это местоположение:
location ~ ^/calendar/event/(?<slug>\d+)$ {
rewrite ^ /calendar/event/old-$slug permanent;
}
Вам не нужно выполнять сложное сопоставление регулярных выражений в rewrite
, когда все необходимые действия выполняются в местоположении
] регулярное выражение. Одной из возможных причин неудачной перезаписи является использование числовой переменной из местоположения.