Nginx 重定向字符串中的最后一个片段

Nginx 重定向字符串中的最后一个片段

我正在努力弄清楚如何重写以下 URL:

http://example.com/blog/01-01-01/string

http://example.com/string

以下正则表达式匹配字符串 -^blog\/\d*-\d*-\d*\/(.*)

我的 nginx 配置块是:

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://127.0.0.1:2368;
  proxy_redirect off;
  rewrite ^blog\/\d*-\d*-\d*\/(.*) http://example/$1 permanent;
}

但是这不起作用。我很难找到我遗漏了什么。我尝试了几种不同的方法,但还是卡住了,任何帮助都将不胜感激。

答案1

你可以尝试这个:

rewrite  ^/blog/\d+-\d+-\d+/(.*)  /$1  redirect;

或者,据说有一种稍微更有效的方法来做同样的事情:

rewrite  ^/blog/\d+-\d+-\d+(/.*)  $1  redirect;

答案2

尝试

^/blog/[0-9][0-9]*.[0-9][0-9]*.[0-9][0-9]\/[A-Za-z\-]*$

这实际上取决于该 URL 的具体程度。

相关内容