原来的目的是:通过iframe可以隐藏动态IP的地址,以实现类似于DDNS那样,直接在地址栏显示二级域名的效果。
如下示例:原来通过 redir 跳转的地址会显示在浏览器地址栏,而我只想让它显示 abc.scwy.net 这样的域名。
abc.scwy.net {
redir http://192.168.2.35:8000
}
Caddy配置文件片段:
:2020 {
header Content-Type text/html
respond 200 {
body "<html><style>*{margin:0px;padding:0px;}</style><iframe style='width:100%;height:100%;' id='myframe' src='{$NAS}'></iframe><script>window.onload = function() { var iframe = document.getElementById('myframe'); iframe.style.width = '100vw';iframe.style.height = '100vh'; }</script></html>"
close
}
}
这里使用了环境变量,写入值也是一样,通过API修改也可以。
export NAS=“https://abc.scwy.net”
部份网站框架采用此方法可能会有问题,导致跳转不成功或出现某些异常。
官方也没有说如何多行内容(也许自己没有每一篇都看),网上搜半天。
:2022 {
header Content-Type text/html
respond 200 {
body `
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="renderer" content="webkit">
<style>
*{margin:0px;padding:0px;}
</style>
</head>
<body>
<iframe style='border:none;width:100%;height:100%;' id='myframe' src='{$NAS}'></iframe>
<script>
window.onload = function() {
var iframe = document.getElementById('myframe');
iframe.style.width = '100vw';
iframe.style.height = '100vh';
}
</script>
</body>
</html>`
}
}