Nginx は文字列の最後のフラグメントをリダイレクトします

Nginx は文字列の最後のフラグメントをリダイレクトします

次の URL を書き換える方法がわかりません。

http://example.com/blog/01-01-01/文字列

http://example.com/文字列

次の正規表現は文字列と一致します -^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 がどの程度具体的であるかによって異なります。

関連情報