nginx 重定向 url 到新模式
nginx redirect url to new pattern
我目前正在将我的博客从 Wordpress 切换到 Ghost。 ghost前面有nginx。
迁移后我认识到旧 urls
http://domain.org/2015/10/some-topic
像
一样迁移
http://domain.org/some-topic
所以日期不见了。无论如何,有一些我不想松开的反向链接,但我对 nginx 不太熟悉......那么从旧 url 样式重定向到新样式的最佳方法是什么?
我当前的配置如下:
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;
}
}
应该添加什么?。我想我需要新的位置,但它应该是什么样子?
我认为你应该在 server
部分中输入:
rewrite ^/[0-9]*/[0-9]*(/.*) last;
但是,如果您有任何其他要求,在 location
部分(如您所写)可能会更好。
我建议使用地图:
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;
}
}
我目前正在将我的博客从 Wordpress 切换到 Ghost。 ghost前面有nginx。 迁移后我认识到旧 urls
http://domain.org/2015/10/some-topic
像
一样迁移http://domain.org/some-topic
所以日期不见了。无论如何,有一些我不想松开的反向链接,但我对 nginx 不太熟悉......那么从旧 url 样式重定向到新样式的最佳方法是什么?
我当前的配置如下:
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;
}
}
应该添加什么?。我想我需要新的位置,但它应该是什么样子?
我认为你应该在 server
部分中输入:
rewrite ^/[0-9]*/[0-9]*(/.*) last;
但是,如果您有任何其他要求,在 location
部分(如您所写)可能会更好。
我建议使用地图:
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;
}
}