(原) Caddy配置中直接输出HTML

原创文章,请后转载,并注明出处。

原来的目的是:通过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>`
        }
}

相关文章