专栏首页NetkillerNginx rewrite 获取问好“?”后面的参数

Nginx rewrite 获取问好“?”后面的参数

节选自 《Netkiller Web 手札》

3.2.4.1. http get 参数处理

需求如下

原理地址:
http://www.netkiller.cn/redirect/index.html?skuid=133

目的地址:
http://www.netkiller.cn/to/133.html			

注意:nginx rewrite 并不支持http get 参数处理,也就是说“?”之后的内容rewrite根部获取不到。

下面的例子是行不通的

			rewrite ^/redirect/index\.html\?skuid=(\d+)$ /to/$1.html permanent ;			

我们需要通过正在查出参数,然后赋值一个变量,再将变量传递给rewrite。具体做法是:

			server {
    listen       80;
    server_name www.netkiller.cn;

    #charset koi8-r;
    access_log  /var/log/nginx/test.access.log  main;

    location / {
        root   /www/test;
        index  index.html;

		if ($request_uri ~* "^/redirect/index\.html\?skuid=([0-9]+)$") {
                set $argv1 $1;
                rewrite .* /to/$argv1.html? permanent;
        }
    }
}			

测试结果

			[neo@netkiller conf.d]$ curl -I http://www.netkiller.cn/redirect/index.html?skuid=133
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Tue, 12 Apr 2016 06:59:33 GMT
Content-Type: text/html
Content-Length: 178
Location: http://www.netkiller.cn/to/133.html
Connection: keep-alive

本文分享自微信公众号 - Netkiller(netkiller-ebook),作者:景峯

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-04-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring RestFul Example (实例参考)

    以下节选择《Netkiller Java 手札》 11.8. Spring4 Restful @RestController 首先我要禁告各位,Spring发展...

    netkiller old
  • 使用 HttpClient 调用 Restful 接口

    本文节选自《Netkiller Java 手札》 import java.io.IOException; import org.apache.http.Htt...

    netkiller old
  • 网站静态内容出版解决方案

    目录 1. 架构总览 2. cdn 3. www 服务器 4. cms 服务器 5. img 6. Ajax 局部更新与缓存 1. 架构总览 www 负责静态文...

    netkiller old
  • Leetcode 313. Super Ugly Number

    版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.cs...

    Tyan
  • 48个实用的生信在线工具强烈推荐,不看是你的损失!

    在线工具一般具有“功能强大、操作简单、无需安装、用完就走”的特点,轻松实现“用别人的服务器分析自己的数据”。

    DoubleHelix
  • [Laravel]修改Laravel 使之http,https自适应的方法

    我之前一直使用的是http,所以部署lnmpa也无所谓,毕竟全都是http通信的。

    用户2353021
  • 《2017年内蒙古自治区第十二届大学生程序设计-超级密码》

    DD小朋友今年三年级,最近,声称设计了一套“超级密码”系统! 说实话,这套所谓的“超级密码”一点也不难: 对于一个给定的字符串,你只要提取其中的数字,然后连在一...

    梅花
  • 微信小程序开发实战(13):图像组件(image)

    image可以用来显示图像,这些图像可以是本地的,也可以是网络图像。例如,下面的布局代码显示了本地图像。

    蒙娜丽宁
  • UVa 11461 - Square Numbers【数学,暴力】

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=...

    Angel_Kitty
  • java web项目中引入spring

    Step2:下载spring的jar包http://repo.spring.io/libs-release-local/org/springframework/...

    河岸飞流

扫码关注云+社区

领取腾讯云代金券