当前位置:asp编程网>技术教程>Linux教程>  正文

nginx中伪静态的参数超过10个怎么办?

2020-06-28 22:04:56   来源:网络   作者:佚名   浏览量:2088   收藏

在nginx服务器上,在/usr/local/nginx/conf/nginx.conf中server中做伪静态,代码如下:

#以下是伪静态设置
        if (!-e $request_filename)
        {
rewrite  ^/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)\.html /index.php?m=Home&c=$1&a=$2&$3=$4&$5=$6&$7=$8&$9=$10 last;
                break;
         }

但是在运行的最后会发现,$10好像没有作用,经测试,$10,$11,$12……等,超过10都不行,最后网上找解决方法,原来原因是,超过10个参数的时候,写法就要改一下了,最后改成
#以下是伪静态设置
        if (!-e $request_filename)
        {
rewrite  ^/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(?<pagesize>\d+)/(?<resId>[_0-9a-z]+)/(?<res>\d+)/(?<res_Id>[_0-9a-z]+)/(?<res_d>\d+)\.html /index.php?m=Home&c=$1&a=$2&$3=$4&$5=$6&$7=$8&$9=$pagesize&$resId=$res&$res_Id=$res_d last;
                break;
         }
其中红色的就是$10,超过10的写法应该 (?<pagesize>\d+) 这样写,后面直接用$pagesize,这样不管有多少个参数都能使用了。

注意:pagesize是任意字符串,自己定义的。

以上代码在nginx服务器上测试,能正常使用。




关于我们-广告合作-联系我们-积分规则-网站地图

Copyright(C)2013-2017版权所属asp编程网