我打算让一些旧的URL与我们正在迁移到的新的CMS一起工作,但由于某种原因它不能支持纯粹的数值URL slugs,所以新系统将它们作为“/ calendar / event / old-42 “而不是”/日历/事件/ 42“。 我想重新定向这些纯粹的数字url到他们新的slu </s>。 以下是我想要做的事情:
location ~ /calendar/event/(\d+)$ { rewrite ^/calendar/event/$1$ /calendar/event/old-$1 permanent; }
这似乎不工作,只有404,当我去“/日历/事件/ 42”。 有任何想法吗?
试试这个位置:
location ~ ^/calendar/event/(?<slug>\d+)$ { rewrite ^ /calendar/event/old-$slug permanent; }
当location正则expression式中完成所有必要的事情时,您不需要在rewrite进行复杂的正则expression式匹配。 重写失败的一个可能的原因是从位置使用数值variables。