【发布时间】:2014-10-15 12:17:10
【问题描述】:
我有两个域名,一个我已经使用了很长时间(blainehansenpianostudio.com),另一个是我现在正在使用的简化域名(blainehansenpiano.com)。我使用 Digital Ocean 进行托管,并且我的 DNS 已设置为两个域都指向我的 droplet,并且都正确显示在我的站点中。
然而,我希望 blainehansenpianostudio.com(更长,更烦人的)完全重定向到 blainehansenpiano.com,但目前它只是作为别名,显示相同的站点但也保留其烦人的长网址。
我能够挖掘出的关于 http 重定向的唯一信息是 this meteorpedia article 和这个 stackoverflow question。这些似乎都没有考虑到辅助域的存在,并且正在使用应用内路由系统。这似乎不是正确的解决方案,因为重定向甚至应该在发送捆绑包之前发生,对吗?我不希望在我的应用中发生大量无关的重定向。
另外,SO 问题有这一行:
实现这一点的最简单方法是将重定向放在中间件中:
这对我来说没有任何意义。 “中间件”在哪里?
我该如何实现呢?我觉得我需要更改服务器设置中的某些内容,但我使用 Meteor Up 进行部署,它没有提及任何关于重定向的内容,并且不确定我需要的服务器配置在哪里。
提前致谢!
更新
我尝试将以下代码放入我的lib/router.js 文件中,只是为了测试一下,看看路由器是否是有问题的“中间件”:
WebApp.connectHandlers
.use(function(req, res, next) {
console.log(req);
console.log(res);
console.log(next);
next();
});
但绝对不是。它只是破坏了路由器。
可能的(但混乱的)解决方案
将此客户端重定向代码放入main.js:
if (window.location.href.indexOf("blainehansenpianostudio") > -1) {
window.location = "http://blainehansenpiano.com";
}
有效,但在重定向完成后它似乎滞后了一会儿。在我看来,这会触发两个完全独立的服务器请求,这根本不理想。
【问题讨论】:
-
如何设置别名?您可以在该地址设置一个简单的页面来重定向using something like these。
-
访问这两个链接,您会看到它们都显示相同的实际站点,但它们保留了各自的网址。这就是我所说的“别名”。也许我没有以适当的方式使用这个词。
-
为了回应使用该维基百科文章中的一种技术,我想我是在问如何在我的特定设置中这样做。 Meteor 几乎完全为您处理服务器端,并且在“blainehansenpianostudio.com”上创建一个刚刚重定向的页面可能需要我使用 Digital Ocean 设置另一个 droplet,这会很浪费。
-
我更具体地问的是,您使用什么代码或服务器设置来为其设置别名。我猜这是数字海洋中的一个设置,在这种情况下,可能还有一个重定向选项。使用别名设置,您的应用程序将确定它来自哪个域并将其重定向,最好将别名更改为它自己的重定向页面或更改该域的服务器设置。
-
是的,它是 Digital Ocean 中的一个设置,在他们的 DNS 部分中。不幸的是,他们告诉我他们不支持该级别的重定向,我必须在我的服务器设置中这样做。我希望我能更好地了解我的服务器设置! Meteor Up 为我处理了所有细节!