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이 얼마나 구체적인지에 따라 다릅니다.

관련 정보