当前位置:首页 > 百科

在网站前面加run

在浏览器地址栏里敲下 run 这四个字母,网站再补上你常去的前面那个域名,回车。网站页面没变。前面你可能会愣一下,网站然后删掉重来。前面但如果你用的网站是某些支持快捷指令的浏览器,或者装了特定扩展,前面这个动作会直接触发一套预设脚本——比如清缓存、网站切代理、前面打开开发者工具、网站甚至自动登录测试账号。前面这不是网站魔法,是前面有人把“在网站前面加run”变成了一个开关。

我第一次见到这种用法是网站在一个前端群里。有人发截图,地址栏写着 run.localhost:3000,下面跟了一句“这样就不用每次手动改hosts了”。当时我以为他在开玩笑。后来自己试了试,发现Chrome的 omnibox 可以注册自定义关键字,Firefox 的地址栏也能通过 about:config 折腾出类似效果。原理不复杂:浏览器把 run 当成一个搜索关键字,后面跟的内容被替换进一个预设的URL模板。你看到的“加run”,其实是把普通域名重定向到了一个本地代理或者调试入口。

具体案例。我有个做运维的朋友,他们内网有二十多台测试机,每台对应一个域名。以前他得记IP,或者维护一个书签文件夹。现在他统一用 run. 前缀——run.alpha.example.com 自动走跳板机,run.beta.example.com 直接连容器。怎么做到的?他在公司DNS里加了一条泛解析,把 run.* 全部指向一个网关。网关根据子域名去查后端真实地址。用户什么都不用装,地址栏多打四个字母,省掉VPN拨号、省掉改hosts、省掉记端口。

这招在开发环境里特别顺手。你本地跑着 localhost:8080,但线上是 www.example.com。想用线上cookie调试本地代码?加个 run 变成 run.www.example.com,配合一个反向代理,请求先到本地,静态资源回源线上。我试过用 mitmproxy 做类似的事,但每次要开终端、改配置。加 run 相当于把这一串操作压缩成一个前缀。有人把它做成浏览器书签脚本,有人写成油猴插件。核心就一句话:让地址栏承担一部分命令行的工作。

当然,不是所有网站都吃这一套。有些CDN会拒绝带奇怪子域名的请求,有些HTTPS证书不认泛解析。我遇到过 run.github.com 直接报SSL错误,因为GitHub没有为这个子域名签证书。这时候你得自己签一个本地CA,或者干脆用HTTP。麻烦吗?比每次手动改hosts还是快一点。另外,如果你在公共电脑上这么干,记得清掉代理设置。我就见过有人把 run. 配到公司代理上,结果回家后所有带run的域名都打不开,查了半天才发现是浏览器扩展没关。

从技术角度看,“加run”本质是URL重写。它不改变网站本身,只改变你到达网站的方式。有点像以前用 about:config 调参数,或者用 chrome://flags 开实验功能。区别在于,这些是浏览器提供的固定入口,而 run 是你自己定义的。你可以换成 dev、test、local,只要不和现有域名冲突。我认识一个后端老哥,他用了 db. 前缀来快速打开数据库管理页面,log. 前缀看日志。地址栏变成了他的快捷启动器。

最后说个坑。有些网站的前端路由会把 run.xxx.com 当成一个普通路径,然后404。因为它们的路由没考虑子域名。这时候你得在代理层把 run. 剥掉,或者用 run-xxx.com 这种连字符写法。我试过 run- 前缀,兼容性好一些,但看起来没那么整齐。选哪种取决于你愿意折腾到什么程度。反正我现在的书签栏里,有一半的链接都是 run. 开头的。点一下,比输密码、找菜单、等跳转快多了。

分享到: