Nginx

nginx - 301 重定向 /subfolder1/some-friendly-url-12345 到 /subfolder2/some-friendly-url

  • January 24, 2017

我是 nginx 的新手。

我有一些舊網址,例如***/aaaaa/some-friendly-url-12345***,我想 301 將這些網址重定向到新網址,但沒有 ID,例如***/bbbbb/some-friendly-url***。

我還想將***/aaaaa/重定向到/bbbbb/***

我嘗試了一些位置指令,但我無法以某種方式成功。

這是我嘗試過的一種:

location ~ /aaaaa/(?P<a_slug>.*)$-(?P<a_id>.*) {
  return 301 https://domain.com/bbbbb/$a_slug;
}

謝謝。

如果將 移到$末尾,則正則表達式應該適用於有限的情況。可以通過使最終術語僅匹配數字來改進它(因此您不依賴於第一次擷取的貪婪)。例如:

location ~ ^/aaaaa/(?<a_slug>.*)-\d+$ {
   return 301 /bbbbb/$a_slug;
}

也可以使用rewrite表達式重寫:

rewrite ^/aaaaa/(.*)-\d+$ /bbbbb/$1 permanent;

有關更多資訊,請參閱此文件。此外,此資源用於正則表達式

引用自:https://serverfault.com/questions/828222