我们偶尔会遇到客户为了赶某一个时间的展会或者汇报,希望可以尽快通过正式域名访问自己的网站。不巧的是客户准备的服务器恰好又不支持.net,为了不影响即将到来的展会或者汇报,此时我们可以怎样去响应客户的需要呢?


方法一:迅速联系空间供应商调整虚拟主机

此方法存在一些不确定因素,空间供应商是否积极响应是一个问题,虚拟主机调整之后是否马上能用也是一个问题。当然,牛X如阿里云、新网这类空间商当然可以分分钟搞定。若客户购买的是海外不知名空间商所提供的主机,则调整起来费时费力。客户不一定懂虚拟主机,也不一定理解这个环节的难处。


方法二:将客户的域名指向到我们的测试服务器

此方法需要核实客户的正式域名是否在国内有过备案,如果未备案,则不要再纠结此方法,放弃吧!此方法需要在测试服务器单独配置IIS站点,处理编辑器中上传图片的路径问题。有一定量的人力成本支出,而且也不是人人都可以上服务器直接调整的。你以为这样就完了吗?等客户正式上线之后,这些保留在测试服务器上的站点累积起来数量也不在少数,之前处理图片路径问题遗留下来的图片文件也占用了服务器不少的空间容量。So~~~请慎用此方法!


当然,能解决问题的方法有千千万万种,这里推荐一种方法,比较省心省力~

方法三:在客户的虚拟主机上放置一个静态页面,此静态页面中用iframe嵌套我们的测试地址

懒人码字不容易,终于敲到真正的环节了!直接上代码:

<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <title>这里输入网页标题</title>
    <meta name="keywords" content="这里输入网页关键词" />
    <meta name="Description" content="这里输入网页描述" />
    <script type="text/javascript" src="http://gz.gzwhir.com/csglzx201504307666/en/scripts/jquery-1.7.2.min.js"></script>
    <style type="text/css">
        body {  margin: 0px; }
    </style>
</head>
<body>
    <iframe id="ifmPage" src="http://gz.gzwhir.com/csglzx201504307666/index.aspx"
        width="100%"
        frameborder="0" framemargin="0" framepadding="0"></iframe>

    <script type="text/javascript">
        function autoHeight() {
            $("#ifmPage").height($(window).height() - 3);
        }
        autoHeight();
        window.onresize = function () {
            autoHeight();
        }
    </script>
</body>
</html>


浏览效果如下图,你能看出来这个页面有什么异样吗?
QQ截图20151218131910.png

代码文件请下载:

index.zip


接下来解说一下此方法的原理:

很简单,客户准备的虚拟主机不支持.net,但是普通的静态页面肯定还是支持的。此时放置一个静态页面在客户服务器上,页面中嵌套了我们测试服务器的网页。用户在访问页面时,浏览器的地址栏依然保留着客户自己的域名,但实际访问的页面内容却是我们测试服务器上的页面内容。


使用方法:

下载附件中的页面文件,修改项目的测试地址、JQuery引用地址、网页SEO信息即可。


当然,事事总有不完美的一面。使用这种方法的缺点即在于:不管用户点击网页上的任何一个链接,浏览器地址栏中的网址都是不变的。这样对于要赶着上搜索引擎推广的用户就不适用了。