Nginx 重定向字串中的最後一個片段

Nginx 重定向字串中的最後一個片段

我正在努力思考如何重寫以下網址:

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 的具體程度。

相關內容