linux - nginx rewrite 去掉指定的url参数
PHP中文网
PHP中文网 2017-04-17 14:53:45
0
2
318

将用户发来的:

http://1.2.3.4/filename1?from=1001&start=3&uid=1234...后面可能还有其他参数
http://1.2.3.4/filename2?start=4&from=1002&uid=3214...后面可能还有其他参数

仅删除start参数, 替换成下面的效果, 再去源站请求.

http://1.2.3.4/filename1?from=1001&uid=1234...后面可能还有其他参数
http://1.2.3.4/filename2?from=1002&uid=3214...后面可能还有其他参数

我了解的方法是rewrite配合arg_要保留的参数名, 但如果我也不确定除了start外还有哪些参数,这方法好像就行不通了.

我在作一个视频网站的缓存, 必须要去掉其中的start参数, 回源时才能得到完整的视频分片缓存在本地.

PHP中文网
PHP中文网

认证0级讲师

reply all(2)
伊谢尔伦

This should work, the poster can give it a try

location ~* filename(\d+)\.html$ {
                root /var/www/html;
                index index.html;
                if ($query_string ~ ^(.*)&start=(\d+)&(.*)) {
                        set $a ;
                        set $b ;
                        set $c ;
                        rewrite ^ /filename1?${a}&${c}? break;
                }
        }
巴扎黑

Provide an idea for the poster’s reference, not tested yet

rewrite ^(.*?)start=\d+\&?(.*)$  last;
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!