我刚刚将我的博客从 blogger 转换为 pelican。在 blogger 上,帖子以前是这样的:http://blog.example.com/2014/09/title-slug.html,现在我在 pelican 上的博客是 http(s)://blog.exmaple.com/title-slug.html。
现在我已经从 blogger 转移到 pelican(自托管),我想将 URL 类型从 blogger 重写为我在 pelican 上使用的 URL 类型。
我从未真正编写过正则表达式或 nginx 重写规则,因此我不知道该如何编写这些规则。我尝试了一些示例,但都不起作用。例如:
location ^/([0-9]+)/([0-9]+)/([a-z0-9-]+)/\.html$ {
rewrite ^(.*) /$1 permanent;
}
答案1
将其从位置块中取出,然后就可以了:
rewrite ^/\d+/\d+/([^/]+\.html)$ /$1 permanent;
答案2
您忘记了正则表达式运算符:~
。
location ~ ^/\d+/\d+/([-\w]+)\.html$ {
return 301 /$1.html;
}