我目前正在将我的博客从Wordpress切换到Ghost。幽灵面前有nginx。 迁移后,我认识到旧网址
http://domain.org/2015/10/some-topic
像
一样迁移http://domain.org/some-topic
所以约会消失了。无论如何有一些反向链接,我不想放松,但我对nginx不是那么熟悉...那么从旧网址样式重定向到新的最佳方法是什么?
我的心态配置如下:
server {
listen 80;
server_name domain.org;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://10.240.0.2:2368;
proxy_redirect off;
}
}
应该添加什么?我想我需要新的位置,但它应该是什么样的?
答案 0 :(得分:2)
我建议使用地图:
map $uri $redirect_topic {
"~^/\d{4}/\d{2}/(?<topic>.*)" $topic;
}
server {
listen 80;
server_name domain.org;
if ($redirect_topic) {
return 301 $scheme://$host/$redirect_topic;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://10.240.0.2:2368;
proxy_redirect off;
}
}
答案 1 :(得分:1)
我认为你应该加入server
部分:
rewrite ^/[0-9]*/[0-9]*(/.*) $1 last;
但如果你有任何额外的请求,可能会更好location
部分(正如你所写)。
关于更多信息,请参阅the official nginx documentation。