Nginx
重定向所有包含 1 個特定單詞但不包含其他單詞的 URL
我正在將我的網站遷移到另一個平台,但是當我完成新網站的所有頁面的開發時,我需要我的使用者在兩個平台之間導航。
因此,我需要對包含 1 個特定單詞但不包含其他單詞的所有 URL 進行 301 重定向:
例子:
- 舊網站:www2.misite.com
- 新網站: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; } }
但不適用於內部條件。:(