Nginx

重定向所有包含 1 個特定單詞但不包含其他單詞的 URL

  • March 11, 2017

我正在將我的網站遷移到另一個平台,但是當我完成新網站的所有頁面的開發時,我需要我的使用者在兩個平台之間導航。

因此,我需要對包含 1 個特定單詞但不包含其他單詞的所有 URL 進行 301 重定向:

例子:

  1. 舊網站:www2.misite.com
  2. 新網站:www.misite.com

我需要重定向所有包含單詞“www2.misite.com/travel(.*)”但不包含單詞“reservation”和“hotel”的 URL。

我的伺服器是 Nginx,不知道是用正則表達式還是 nginx 語句。

非常感謝你。

我能夠通過以下方式解決我的問題:

   location ~ /travel(.*)+/(.*)$ {
   if ($uri !~ "^(.*)/(reservation|hotel|faq)(.*)"){
       return 301 https://www.misite.com$request_uri;
   }
   autoindex on;
   root /usr/share/nginx/html/sites/;
   index index.php index.html index.htm;
   try_files $uri $uri/ /index.php?$args;
}

謝謝你。

我試試

location ~ /travel(.*)+/(.*)$ {
   if ($request_uri !~ "^/(reservation|hotel|faq)/\w+$"){
       return 301 https://www.misite.com/$1;
   }
}

但不適用於內部條件。:(

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