Javascript:重定向到不同的子域
Posted
技术标签:
【中文标题】Javascript:重定向到不同的子域【英文标题】:Javascript: redirect to different Subdomain 【发布时间】: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)中,都有针对此的设置。 【参考方案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";以上是关于Javascript:重定向到不同的子域的主要内容,如果未能解决你的问题,请参考以下文章
PHP:将主域重定向到https:// www,子域重定向到https://(不带www)