主理人说
工欲善其事,必先利其器。先思考,在进行运用,多运用。不消一刻钟,你便已经入门到精通。
重写类型
打开 Quantumultx - 点击右下角三菱按钮 - 划至重写
模块 - 点击添加
按钮 - OK,你会看到很多有意思的重写类型 ,每一个都值得学习;本文将就 302/307/reject
的用法进行着重介绍;
正则表达式
正规表示式(英语:Regular Expression,常简写为regex、regexp或RE),又称正规表达式、正规表示法、规则运算式、常规表示法,是电脑科学的一个概念。正规表示式使用单个字串来描述、符合一系列符合某个句法规则的字串。在很多文字编辑器裡,正则表达式通常被用来检索、替换那些符合某个模式的文字。
许多程式设计语言都支援利用正则表达式进行字串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软体(例如sed和grep)普及开的。
via 维基百科;
302/307
302 Found,原始描述短语为 Moved Temporarily ,是HTTP协议中的一个状态码(Status Code)。可以简单的理解为该资源原本确实存在,但已经被临时改变了位置;换而言之,就是请求的资源暂时驻留在不同的URI下1,故而除非特别指定了缓存头部指示,该状态码不可缓存。
对于服务器,通常会给浏览器发送HTTP Location头部来重定向到新的新位置。
正则表达式学习资料
1.正则表达式30分钟入门指南;
2.正则表达式在线测试工具;
下面,就开始正式的入门工作;
302/307 URL重写范例参考
参考范例(神机规则)
以下这个范例是援引自神机规则YouTube去广告重写-引用:https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Rewrite/Block/YouTubeAds.conf;
hostname = *.googlevideo.com
(^https?:\/\/[\w-]+\.googlevideo\.com\/.+)(ctier=L)(&.+) url 302 $1$3
^https?:\/\/[\w-]+\.googlevideo\.com\/.+&(oad|ctier) url reject
(^https?:\/\/[\w-]+\.googlevideo\.com\/.+)(ctier=L)(&.+)
这是一条正常的正则表达式,用以匹配YouTubeAPP中广告加载的URL;
这里将要进行匹配的URL用括号分成3个组成部分或更多,如(^https?:\/\/[\w-]+\.googlevideo\.com\/.+)
、(ctier=L)
、(&.+)
;
这是一条正常的YouTube广告加载请求URL:
https://r1---sn-i3b7knlk.googlevideo.com/videoplayback?expire=1611647818&ei=6nYPYO26CcfEgQPvl4UI&ip=233.233.243.82&id=o-AAYWEfm0qcXADt3IZOzXgQrsYfjj9dz0qlGHrIEn1mvK&itag=140&source=youtube&requiressl=yes&mh=hk&mm=31,26&mn=sn-i3b7knlk,sn-npoeened&ms=au,onr&mv=m&mvi=1&pl=20&ctier=L&pcm2=no&initcwndbps=1290000&vprv=1&mime=audio/mp4&gir=yes&clen=520095&dur=32.089&lmt=1607802685243373&mt=1611625971&fvip=1&keepalive=yes&c=IOS&txp=5531432&sparams=expire,ei,ip,id,itag,source,requiressl,ctier,pcm2,vprv,mime,gir,clen,dur,lmt&sig=AOq0QJ8wRQIhAMVBpVYLydfU9WGXQT_Zdo5reHwPmFC8CUVjkF12bjnyAiByIeUHXQJhiJHkV5ymKM2LqtSg8zk3M4DNELm8ApbKDw%3D%3D&lsparams=mh,mm,mn,ms,mv,mvi,pl,initcwndbps&lsig=AG3C_xAwRQIgTVN8mRdR5IFmOp6K0W4RADE_k5KMOn0sEZzCy91S-cUCIQDIyukdXCLtUOKxkXgS5_FKeGLYSTrjVw_J2PR-HGfOAw%3D%3D&cpn=ulLevXW2cYp_h-jp&rn=1&ump=1&range=0-711
现在我们用正则表达式去匹配这条URL;
在线正则表达式测试工具:https://tool.oschina.net/regex/
Get it?
将原本的$1$2$3
,替换成$1
;
回到
hostname = *.googlevideo.com
(^https?:\/\/[\w-]+\.googlevideo\.com\/.+)(ctier=L)(&.+) url 302 $1$3
^https?:\/\/[\w-]+\.googlevideo\.com\/.+&(oad|ctier) url reject
中,将$1$2$3
重定向为$1$3
;少了$2
;
而$2即,(^https?:\/\/[\w-]+\.googlevideo\.com\/.+)(ctier=L)(&.+)
正则表达式中的(ctier=L)
部分匹配结果;
自此,URL请求从
https://r1---sn-i3b7knlk.googlevideo.com/videoplayback?expire=1611647818&ei=6nYPYO26CcfEgQPvl4UI&ip=233.233.243.82&id=o-AAYWEfm0qcXADt3IZOzXgQrsYfjj9dz0qlGHrIEn1mvK&itag=140&source=youtube&requiressl=yes&mh=hk&mm=31,26&mn=sn-i3b7knlk,sn-npoeened&ms=au,onr&mv=m&mvi=1&pl=20&ctier=L&pcm2=no&initcwndbps=1290000&vprv=1&mime=audio/mp4&gir=yes&clen=520095&dur=32.089&lmt=1607802685243373&mt=1611625971&fvip=1&keepalive=yes&c=IOS&txp=5531432&sparams=expire,ei,ip,id,itag,source,requiressl,ctier,pcm2,vprv,mime,gir,clen,dur,lmt&sig=AOq0QJ8wRQIhAMVBpVYLydfU9WGXQT_Zdo5reHwPmFC8CUVjkF12bjnyAiByIeUHXQJhiJHkV5ymKM2LqtSg8zk3M4DNELm8ApbKDw%3D%3D&lsparams=mh,mm,mn,ms,mv,mvi,pl,initcwndbps&lsig=AG3C_xAwRQIgTVN8mRdR5IFmOp6K0W4RADE_k5KMOn0sEZzCy91S-cUCIQDIyukdXCLtUOKxkXgS5_FKeGLYSTrjVw_J2PR-HGfOAw%3D%3D&cpn=ulLevXW2cYp_h-jp&rn=1&ump=1&range=0-711
替换为:
https://r1---sn-i3b7knlk.googlevideo.com/videoplayback?expire=1611647818&ei=6nYPYO26CcfEgQPvl4UI&ip=233.233.243.82&id=o-AAYWEfm0qcXADt3IZOzXgQrsYfjj9dz0qlGHrIEn1mvK&itag=140&source=youtube&requiressl=yes&mh=hk&mm=31,26&mn=sn-i3b7knlk,sn-npoeened&ms=au,onr&mv=m&mvi=1&pl=20&&pcm2=no&initcwndbps=1290000&vprv=1&mime=audio/mp4&gir=yes&clen=520095&dur=32.089&lmt=1607802685243373&mt=1611625971&fvip=1&keepalive=yes&c=IOS&txp=5531432&sparams=expire,ei,ip,id,itag,source,requiressl,ctier,pcm2,vprv,mime,gir,clen,dur,lmt&sig=AOq0QJ8wRQIhAMVBpVYLydfU9WGXQT_Zdo5reHwPmFC8CUVjkF12bjnyAiByIeUHXQJhiJHkV5ymKM2LqtSg8zk3M4DNELm8ApbKDw%3D%3D&lsparams=mh,mm,mn,ms,mv,mvi,pl,initcwndbps&lsig=AG3C_xAwRQIgTVN8mRdR5IFmOp6K0W4RADE_k5KMOn0sEZzCy91S-cUCIQDIyukdXCLtUOKxkXgS5_FKeGLYSTrjVw_J2PR-HGfOAw%3D%3D&cpn=ulLevXW2cYp_h-jp&rn=1&ump=1&range=0-711
以上。
更多用法
广告元素替换
你需要记住的是 参数 url
后 可以任意字母数字、域名(仍需遵循正则表达式规范);你可以根据你的需求,将匹配到的URL(结果)进行任意重写、结果组合,例如把该请求重定向到 https://limbopro.com;
hostname = *.googlevideo.com
(^https?:\/\/[\w-]+\.googlevideo\.com\/.+)(ctier=L)(&.+) url 302 https://limbopro.com
(^https?:\/\/[\w-]+\.googlevideo\.com\/.+)(ctier=L)(&.+) url 302 $1
reject
不想替换,想屏蔽,那就使用参数 reject。
hostname = *.googlevideo.com
(^https?:\/\/[\w-]+\.googlevideo\.com\/.+)(ctier=L)(&.+) url 302 $1$3
^https?:\/\/[\w-]+\.googlevideo\.com\/.+&(oad|ctier) url reject
^https?:\/\/[\w-]+\.googlevideo\.com\/.+&(oad|ctier) url reject
真香。
实践运用
在此示例中,正则表达式用于匹配你想要匹配的URL,url 后面接 重写类型;
现在,假设你想 屏蔽/替换 一个 jpg 图片?
应该怎么做?
以 https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png 谷歌首页logo 为例:
hostname = *.google.com
https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png url 302 https://limbopro.com/favicon.ico
有没有很简单?
正则表达式妙在哪里呢?可以精准匹配(如上述https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
,完全匹配),也可以抹除某些可能存在变数的细节再进行匹配;
hostname = *.google.com
^https://.*google\.com/.*?googlelogo.*?\.png url 302 https://limbopro.com/favicon.ico
^https://.*google\.com/.*?googlelogo.*?\.png
仍能匹配得到 https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
,且能匹配得到更多。
复写生效检查
附注
版权属于:毒奶
联系我们:https://limbopro.com/6.html
毒奶搜索:https://limbopro.com/search.html
机场推荐:https://limbopro.com/865.html IEPL专线/100Gb/¥15/月起
毒奶导航:https://limbopro.com/daohang/index.html本文链接:https://limbopro.com/archives/14044.html
本文采用 CC BY-NC-SA 4.0 许可协议,转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!