Nginx
NGINX:用前綴重寫數字 URL 段
我的目標是讓一些舊 URL 與我們正在遷移到的新 CMS 一起使用,但由於某種原因它不能支持純數字 URL slug,因此新系統將它們設置為“/calendar/event/old-42 " 而不是 “/calendar/event/42”。我想將這些純數字 URL 重定向到他們的新 slug。這是我的想法:
location ~ /calendar/event/(\d+)$ { rewrite ^/calendar/event/$1$ /calendar/event/old-$1 permanent; }
這似乎不起作用,當我轉到“/calendar/event/42”時只有 404 秒。有任何想法嗎?
試試這個位置:
location ~ ^/calendar/event/(?<slug>\d+)$ { rewrite ^ /calendar/event/old-$slug permanent; }
rewrite
當所有必要的東西都在正則表達式中完成時,您不需要在 中進行複雜的正則表達式匹配location
。重寫失敗的一個可能原因是使用了來自位置的數值變數。