沉冰浮水

沉冰浮水

做最终到的事,成为最终成为的人!
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 缓存_电脑网络_沉冰浮水

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。