php 连接带参数的写法,nginx带问号(?)带参数的rewrite规则的书写方法

nginx带问号(?)带参数的rewrite规则的书写方法,很不错的文章,感兴趣的朋友可以参考下。

今天收到一个需求,要根据程序员的需要给定php的参数来跳转到指定的页面,安装常规的rewrite规则,如:rewrite ^/change.php?id=weibo  http://www.weibo.com/; (错误的示范)

这样的跳转起不了左右,因为nginx会把后面的一整串都认为是URL,但是在浏览器上去,只会访问到change.php这个文件。

那只能想别的方法了,仔细看了nginx的各项参数,注意到里面的

$query_string      解释:请求行中(GET请求)的参数;(配置1)

$request_uri  解释:包含请求参数的原始URI,不包含主机名,如:"/change.php?id=163",不能修改。

(配置2)

那我们就根据参数来判断是否要跳转。

配置如下

(配置1):

nginx_rewrite_20121103_1.jpg

方便复制:

复制代码代码如下:

if ( $query_string ~ "id=(baidu)(.*)$" )

{

rewrite ^/css/style.css http://www.baidu.com/;

}

if ( $query_string ~ "id=(qq|QQ)(.*)$" )

{

rewrite ^/ http://www.qq.com/;

}

(配置2):

nginx_rewrite_20121103_2.jpg

方便复制:

复制代码代码如下:

if ( $request_uri ~ "/(.*).html\?id=163" )

{

rewrite ^/ http://www.163.com/;

}

# 直接跳转到163 ;

if ( $request_uri ~ "/(.*).html\?id=sohu" )

{

rewrite ^/(.*).html /css/style.css;

}

#    *.html?id=sohu 跳转到/css/style.css;伪静态

测试:

1,测试跳转到百度:

nginx_rewrite_20121103_3.jpg

2,测试跳转到QQ:

nginx_rewrite_20121103_4.jpg

3,测试跳转到微博:

nginx_rewrite_20121103_5.jpg

4,测试跳转到163:

nginx_rewrite_20121103_6.jpg

从测试结果来看,配置成功。

原文作者:李坤山

博客链接:http://blog.163.com/a12333a_li/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值