作为将我的博客文章从/slug-of-post
移动到/blog/slug-of-post
更改的一部分,我需要在我的 Nginx 配置中设置永久重定向,这样旧的帖子链接就不会出现 404错误。Forge有一个 UI为此,但它只允许一次执行一个重定向,而我有大约 130 个要做。因此,我获取了所有帖子的列表,并在 Sublime Text [1]中使用多行编辑对其进行格式化。
将以下内容添加到您的 Nginx 配置中以对特定 URL 进行重定向。就我而言,它位于/etc/nginx/sites-available/rknight.me
。
server {
# 301 Moved Permanently
rewrite ^/slug-of-post /blog/slug-of-post permanent ;
# 302 Found/Moved Temporarily
rewrite ^/slug-of-post /blog/slug-of-post redirect ;
# the rest of your nginx config here
}
您也可以对整个域执行此操作。虽然我不需要这样做,但这里也值得注意。
server {
# redirect the root of the domain
rewrite ^/$ http://new.example.com permanent ;
# preserve paths
rewrite ^/(.*)$ http://new.example.com/ $1 permanent ;
# the rest of your nginx config here
}
-
我使用 VSCode 来做大多数事情,但 Sublime 仍然是处理多行编辑方面最好的⤾
原文: https://rknight.me/blog/creating-permanent-and-temporary-redirects-with-nginx/