目录
什么是Quantumult X重写规则
Quantumult X是一款功能强大的网络代理工具,其中重写规则是一个非常重要的功能。重写规则允许用户对HTTP/HTTPS请求和响应进行自定义修改,从而实现各种应用场景,如绕过广告、解锁VIP功能等。
与URL Rewrite不同,重写规则提供了更加灵活和强大的功能,可以对请求和响应的各个部分进行修改。通过编写合理的重写规则,用户可以大幅提高Quantumult X的使用体验。
重写规则语法
重写规则的基本语法如下:
http-response ^https?://(www.)?example.com script-path=example_response.js, requires-body=1, timeout=10 http-request ^https?://(www.)?example.com script-path=example_request.js, timeout=5
http-response
和http-request
是关键字,分别表示对响应和请求进行重写。^https?://(www.)?example.com
是正则表达式,用于匹配需要重写的URL。script-path=example_response.js
和script-path=example_request.js
指定了需要执行的脚本文件。requires-body=1
表示需要读取响应的body内容。timeout=10
和timeout=5
分别设置了响应和请求的超时时间。
重写规则应用场景
重写规则可以应用于多种场景,下面是几个常见的例子:
修改请求URL
有时候我们需要修改请求的URL,比如绕过某些URL的防护机制。可以使用如下规则:
http-request ^https://example.com/protected url-regex=^https://example.com/(.+), script-path=example_request.js
修改响应头
有时候我们需要修改响应头,比如伪造Referer
或User-Agent
头。可以使用如下规则:
http-response ^https://example.com/api header-replace Referer https://www.example.com
修改响应内容
有时候我们需要修改响应的内容,比如屏蔽广告或解锁VIP功能。可以使用如下规则:
http-response ^https://example.com/api requires-body=1, script-path=example_response.js
重写规则示例
下面是一些常见的重写规则示例:
- 绕过某网站的防护机制:
http-request ^https://example.com/protected url-regex=^https://example.com/(.+), script-path=example_request.js
- 修改响应头伪造Referer:
http-response ^https://example.com/api header-replace Referer https://www.example.com
- 屏蔽广告:
http-response ^https://example.com/api requires-body=1, script-path=example_response.js
- 解锁VIP功能:
http-response ^https://example.com/vip requires-body=1, script-path=example_response.js
常见问题FAQ
重写规则和脚本的区别是什么?
重写规则和脚本都可以用于修改HTTP/HTTPS请求和响应,但它们的实现方式不同。重写规则是通过正则表达式匹配URL,并执行预定义的操作,如修改头部、修改body等。而脚本则需要编写JavaScript代码,可以实现更加复杂的逻辑。一般来说,对于简单的修改可以使用重写规则,而对于复杂的逻辑则需要使用脚本。
如何调试重写规则?
调试重写规则可以使用Quantumult X内置的日志功能。在设置中开启全局日志
和网络请求日志
后,在执行重写规则时就会在日志中看到相关信息。可以根据日志中的错误信息来排查问题。
重写规则支持哪些正则表达式?
Quantumult X的重写规则支持标准的PCRE正则表达式语法。这包括常见的字符匹配、分组、量词等功能。具体可以参考PCRE正则表达式的文档。
重写规则和URL Rewrite有什么区别?
URL Rewrite和重写规则都是Quantumult X中的功能,但它们有一些区别:
- URL Rewrite只能修改URL,而重写规则可以修改请求和响应的各个部分。
- URL Rewrite使用简单的字符串替换,而重写规则使用更强大的正则表达式。
- 重写规则可以执行JavaScript脚本,从而实现更复杂的逻辑。
总的来说,重写规则提供了更加灵活和强大的功能,适用于需要深度定制HTTP/HTTPS行为的场景。