沉冰浮水

沉冰浮水

做最终到的事,成为最终成为的人!
github
bilibili
mastodon
zhihu
douban

「折騰」Nginx 解析網址參數並跳轉

演示網址: https://demo.wdssmq.com/?id=2887

對於如上地址,在 Apache 下可以使用如下規則重定向(301)到偽靜態地址。

RewriteCond %{QUERY_STRING} ^id=(.+)$ # 這裡的引用是 %1 而不是 $1
RewriteRule ^$ %{REQUEST_SCHEME}://%{HTTP_HOST}/post/%1.html [L,R=301]

至於 Nginx,同時有$query_string$args兩個變量用於獲取網址參數,效果好像是一樣的;

注:$arg_id.html後的?表示跳轉後不攜帶原來的網址參數;

# page + post
if ($args ~* "id=\d+") {
    rewrite ^/$ $scheme://$host/post/$arg_id.html? permanent;
}

↑↑上述代碼的 if 語句中使用了正則判斷,但是並沒有對匹配結果進行捕獲,而是使用了$arg_id直接獲取到了相應值,同理其他參數也可以使用$arg_參數名來獲取。

演示地址實際跳轉了兩次,第二次由 id 跳轉到了別名,該效果由插件 [改版助手 - Z-Blog 應用中心] 實現。。

2022-05-11:

當年寫這篇記錄時還沒弄 md2zb 體系來發文章,然後因為 301 會被瀏覽器緩存,清理的時候一併清掉了登錄狀態,結果編輯好文章發布時失敗了。。

正確的清理姿勢見:「水坑」瀏覽器內清理特定網站的 301 緩存_電腦網絡_沉冰浮水

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。