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)

Dockerized Nginx将不同的子域重定向到同一页面

.htaccess 如何仅将子域/文件夹重定向到子域

将根域重定向到子域的影响

301 在 Django 中重定向 www 子域

重定向到子域会导致重定向循环错误