nginx带问号(?)带参数的rewrite规则的书写方法
2014-01-23 16:50
627 查看
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):
方便复制:复制代码代码如下: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):
方便复制:复制代码代码如下: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,测试跳转到百度:
2,测试跳转到QQ:
3,测试跳转到微博:
4,测试跳转到163:
从测试结果来看,配置成功。原文作者:李坤山
博客链接:http://blog.163.com/a12333a_li/
这样的跳转起不了左右,因为nginx会把后面的一整串都认为是URL,但是在浏览器上去,只会访问到change.php这个文件。那只能想别的方法了,仔细看了nginx的各项参数,注意到里面的
$query_string 解释:请求行中(GET请求)的参数;(配置1)
$request_uri 解释:包含请求参数的原始URI,不包含主机名,如:"/change.php?id=163",不能修改。
(配置2)
那我们就根据参数来判断是否要跳转。配置如下
(配置1):
方便复制:复制代码代码如下: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):
方便复制:复制代码代码如下: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,测试跳转到百度:
2,测试跳转到QQ:
3,测试跳转到微博:
4,测试跳转到163:
从测试结果来看,配置成功。原文作者:李坤山
博客链接:http://blog.163.com/a12333a_li/
相关文章推荐
- nginx带问号(?)带参数的rewrite规则的书写方法
- nginx url rewrite 的问号规则
- nginx下rewrite规则中参数超过10 $10 解决方案
- rewrite规则中参数多于9个的处理方式 apache nginx
- 带问号的url重定向和参数保留--nginx rewrite
- nginx url rewrite 的问号规则
- nginx rewrite重写规则与防盗链配置方法教程详解
- nginx rewrite arg 带问号的地址转发参数处理?Nginx重定向的参数问题
- nginx rewrite arg 带问号的地址转发参数处理?Nginx重定向的参数问题
- nginx下rewrite参数超过9个的解决方法
- nginx url rewrite 的问号规则
- nginx过多参数rewrite配置方法
- nginx rewrite arg 带问号的地址转发参数处理?Nginx重定向的参数问题
- nginx环境下emlog的rewrite规则
- 【转】nginx配置location总结及rewrite规则写法
- Nginx配置location总结及rewrite规则写法
- Nginx的Rewrite规则
- Nginx与Apache的Rewrite规则的区别
- nginx配置location总结及rewrite规则写法
- nginx配置location总结及rewrite规则写法