相对 Nginx 重写规则

Relative Nginx Rewrite Rules

我目前有一个 nginx 实例,它仅用于保留旧 url 的流量。

server {
listen xxx.xxx.IP.IP;
server_name  blog.store.com;
if ($http_host = "xxx.xxx.IP.IP"){return 301 $scheme://store.com;}
if ($http_host = blog.store.com){return 301 $scheme://store.com/blog;}
}

这很好用,但我想添加一条规则,允许人们导航到该目录的子目录并保留他们点击的其余路径。

示例:现在,如果有人点击显示 'blog.store.com/page' 的 link,他们将被带到 'store.com/blog'

我希望他们能够击中 'blog.store.com/page' 并被带到 'store.com/blog/page'

我尝试了

中的一些示例

URL Rewriting Nginx

Make nginx rewrite relative

但是 $1 的那些和不同变体不起作用。我错过了什么吗?

提前致谢

试试这个:

server {
  listen      xxx.xxx.IP.IP  default_server;
  return      301  $scheme://store.com;
}
server {
  listen      xxx.xxx.IP.IP;
  server_name blog.store.com;
  return      301  $scheme://store.com/blog$request_uri;
}

理查德,非常感谢你,这是我的新代码,它起作用了。

server {
listen xxx.xx.xx.xxx:80;
server_name  blog.store.com;
if ($http_host = "xxx.xx.xx.xxx"){return 301 $scheme://store.com;}
if ($http_host = blog.store.com){return 301 $scheme://store.com/blog$request_uri;}
}

再次感谢!