URL转发很多人应该都或多或少了解一些,有时候我们一些网页带端口号使用不方便,就会想用不带端口的域名转发到带端口的域名上,方便访问。

  • 显性URL转发:只是跳转,地址栏显示的还是你跳转后的地址,而非输入地址
  • 隐性URL转发:地址栏中显示的是输入地址,内容是跳转的页面内容

隐性URL转发的特点,一是URL隐性转发页面内的内容无法被搜索引擎索引,二是不管你怎么点链接,url地址栏和标题都不会变化,除非是打开新页面。

那就有人会说很多DDNS服务商都提供URL隐性转发,比如DNSPOD提供2个免费的URL转发(HTTP),为啥要自己搭建呢?

主要是因为DNSPOD没有提供HTTPS,当嵌套的网页内需要涉及账号登陆时,需要HTTPS同主域名才能实现正常登陆。(换句话说,用DNSPOD提供的HTTP的URL隐性转发,只能访问群晖登陆界面,而无法登陆进去。)

该方法同样能够有效解决在服务器备案期间,由于直接解析暂未经备案的服务器导致的禁止访问情形。

实现的效果

这个教程中,我想实现的效果是访问网址nas.xxx.cn,网页直接嵌套我的群晖后台https://qc.xxx.cn:5001

有人可能会有疑问,为啥不直接内网穿透等方法,加上群晖自带的反向代理服务,用nas.xxx.cn直接访问呢?原因是内网穿透网速慢啊,对于有公网IP的人来说,直接用公网IP是最流畅的,网页嵌套后nas.xxx.cn访问的只是个很小的静态网页,里面嵌套的内容都是走的公网IP,使用起来的效果和直接用公网IP+端口号一样流畅。

创建Frame网页

新建一个index.html网页,复制粘贴以下代码:

<!doctype html>
<html lang="zh_CN">
<head>
   <meta charset="utf-8">
   <meta name="author" content="https://csyan.cn" />
   <link rel="icon" href="https://qc.xxx.cn:5001/webman/favicon.ico" type="image/ico" />
   <title>NAS</title>
</head>
<frameset rows="100%">
   <frame src="https://qc.xxx.cn:5001">
</frameset>
<noframes>
   <body>您的浏览器不支持Frame框架,<a href="https://qc.xxx.cn:5001">请点击此链接跳转</a>!</body>
</noframes>
</html>

其中“NAS”是网页标题,可以改成自己的。

https://qc.xxx.cn:5001改成自己要转发嵌套页面。

https://qc.xxx.cn:5001/webman/favicon.ico是群晖的ico图标链接,根据自己情况改。

设置网站访问

编辑好index.html,接下来就是设置nas.xxx.cn访问到这个页面,做好HTTPS。

方法有很多,大家根据自己情况设置,我这里提供两个思路。

一是使用NPS、FRP等内网穿透工具,使nas.xxx.cn这个域名访问到群晖,在群晖web station中新建主机并设置参数。

二是使用云存储,由于是静态网页,不是动态内容,网上很多云存储都支持静态网站托管,同时记得开启HTTPS。(这里以又拍云为例)

两种方式各有优劣,使用群晖做网页服务器可以使用自带的SSL证书,设置相对简单,但是速度肯定没有云存储快。

云存储需要手动设置SSL证书,同时绑定的域名需要备案。

 

PS:除了Frame,iFrame也可以实现同样的效果,代码如下,孰优孰劣大家自行取舍啦

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <link rel="icon" href="https://qc.xxx.cn:5001/webman/favicon.ico" type="image/ico" />
    <title>NAS</title>
    <style type="text/css">
        html, body {
            margin: 0;
            padding: 0;
            width: 100%;
            height: 100%;
        }

        iframe {
            margin: 0 auto;
            display: block;
            width: 100%;
            height: 100%;
            border: 0;
        }
    </style>
</head>
<body>
    <iframe src="https://qc.xxx.cn:5001" allowfullscreen="true" allow="microphone; camera"></iframe>
</body>
</html>
说点什么
教程内容无法面面俱到,有疑问的可以留言讨论|´・ω・)ノ
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...