linux - nginx rewrite 去掉指定的url参数
PHP中文网
PHP中文网 2017-04-17 14:53:45
[Linux讨论组]

将用户发来的:

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级讲师

全部回复(2)
伊谢尔伦

这个应该可以,楼主可以试试

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

提供个思路给楼主参考,未测试

rewrite ^(.*?)start=\d+\&?(.*)$ $1$2 last;
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号