【问题标题】:Javascript: redirect to different SubdomainJavascript:重定向到不同的子域
【发布时间】:2017-04-05 01:36:41
【问题描述】:

我有一个登陆页面:“https://www.example.com”和一个应用程序:“https://app.example.com/something/”,在一些用户操作(如注销)上,我需要将用户重定向回原始登陆页面。 我的硬编码解决方案确实有效:

window.location = "https://www.example.com"

但这在我的本地开发等其他环境中是不好的做法并且很烦人(http://localhost:8082/something - 对于应用程序,没有本地登录页面)。 是否有一些简单易用的解决方案可以仅重定向到我当前站点的基域(example.com 默认重定向到 www.example.com)?

【问题讨论】:

  • 这通常通过更改 Web 服务器中的设置来解决。在许多托管平台(我使用 GoDaddy)中,都有针对此的设置。

标签: javascript http url redirect url-rewriting


【解决方案1】:

然后我会使用

var hostname = location.hostname;
window.location = `https://${hostname}`;

来源: Determine domain name in JavaScript?

还有: http://www.w3schools.com/jsref/prop_loc_hostname.asp

编辑:对于端口:

http://www.w3schools.com/jsref/prop_loc_port.asp

你可以使用

var hostname = location.hostname;
var port = location.port;
window.location = `https://${hostname}:${port}`

【讨论】:

  • 我试过了,但有两个问题:1. 我重定向到 https(即使我在 http 上是本地的)和 2. 端口(8082)丢失了。我知道我可以写一些正则表达式和字符串替换,但这对于简单的重定向来说似乎有点太复杂了......
  • 用“http://${hostname}”代替“https://${hostname}”怎么样?
  • 我的端口仍然存在问题:(该端口似乎不是 location.hostname 的一部分,但 location.port 拥有它。也许我会在端口 80 运行我的本地服务器..
  • 也:w3schools.com/jsref/prop_loc_port.asp 你可以使用 var port = location.port;然后 "window.location = "https://${hostname}:${port}";
猜你喜欢
  • 2014-04-24
  • 2011-05-22
  • 1970-01-01
  • 2012-11-12
  • 1970-01-01
  • 2017-02-02
  • 1970-01-01
  • 2012-07-25
相关资源
最近更新 更多