求助 V 友 , surge 重定向问题(正则表达式 替换)

2022-03-19 18:47:30 +08:00
 xingHI

这是北大法宝的界面,我搜索一项法律,比如说刑法,老是要携带不必要参数 示例链接:
https://www.pkulaw.com/chl/937235cafaf2a66fbdfb.html?keyword=商标法 期望使用 surge 重定向后的效果:
https://www.pkulaw.com/chl/937235cafaf2a66fbdfb.html?keyword=

或者
https://www.pkulaw.com/chl/937235cafaf2a66fbdfb.html

注意:其 https://www.pkulaw.com/chl/ 这一段是不会会变的 只有 937235cafaf2a66fbdfb 会根据不同法律变化 .html 不变 。 所以关键就是不能重复匹配,可以通过 keywork 字段是否存在作为依据。

测试:
https://www.pkulaw.com/chl/4dce14765f4265f1bdfb.html?keyword=网络安全法 答案:
https://www.pkulaw.com/chl/4dce14765f4265f1bdfb.html
OR
https://www.pkulaw.com/chl/4dce14765f4265f1bdfb.html?keyword=

1520 次点击
所在节点    问与答
4 条回复
ladit
2022-03-20 14:20:15 +08:00
可以利用 Script 功能:

```
[Script]
pkulaw = type=http-request,pattern=https://www.pkulaw.com/chl.+ script-path=pkulaw.js
```

```javascript
// pkulaw.js
$request.url = $request.url.replace(/\?keyword=.+/, '')
$done({$request})
```
xingHI
2022-03-20 19:18:37 +08:00
@ladit 非常感谢您的答复,让我看到了解决这个问题的新思路
我做测试一直没有成功,我刚刚把您的 js 文件上传到了 github 并且稍做修改,还是没有成功,已经对 https 进行解密
[Script]
pkulaw = type=http-request,pattern=^https?:\/\/www.pkulaw.com/chl/*,requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/dmsusu/mytest/main/pkulaw.js

github 上的 js 文件:
$request.url = $request.url.replace(/\?keyword=*/, '');
$done({$request});


不知道是不是我设置的问题
xingHI
2022-03-20 19:21:37 +08:00
@ladit 还未考虑到会重复匹配到问题,目前就是无效果
ladit
2022-03-21 00:20:36 +08:00
@xingHI 我重新看了一下,这样写,并打开 HTTPS 解密,可以实现你想要的效果。
```
[Script]
http-response ^https?:\/\/www\.pkulaw\.com\/chl\/.+ requires-body=true, script-path=pkulaw.js


[MITM]
hostname = www.pkulaw.com
```

```pkulaw.js
if ($request.url.includes('keyword=')) {
$done({
status: 307,
headers: {
'Location': $request.url.replace(/\?keyword=.+/, '')
}
})
}
$done({})
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/841500

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX