【问题标题】:Relative Nginx Rewrite Rules相对 Nginx 重写规则
【发布时间】:2016-02-10 19:22:51
【问题描述】:

我目前有一个 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”的链接,他们将被带到“store.com/blog”

我希望他们能够点击“blog.store.com/page”并被带到“store.com/blog/page”

我已经尝试了一些来自

的示例

URL Rewriting Nginx

Make nginx rewrite relative

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

提前谢谢你

【问题讨论】:

  • 欢迎来到 SO!请随意粘贴不适合您的代码(显示问题的最小代码,请参阅stackoverflow.com/help/mcve)。如果您没有正确实施教程,人们将能够指出问题。

标签: nginx http-status-code-301


【解决方案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;
}

【讨论】:

    【解决方案2】:

    Richard 非常感谢你,这是我的新代码。

    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;}
    }
    

    再次感谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 2013-08-05
      • 2013-10-12
      相关资源
      最近更新 更多