2016-11-21 51 views
0

我有一個登陸頁面:「https://www.example.com」和一個應用程序:「https://app.example.com/something/」和一些用戶操作,如註銷我需要重定向用戶回原始的登陸頁面。 我硬編碼的解決方案確實工作:Javascript:重定向到不同的子域

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

但是這是不好的做法,在其他環境中,如我的地方發展煩人(http://localhost:8082/something - 爲應用程序,沒有本地的LandingPage)。 有沒有一些很好的簡單的解決方案,重定向到我當前網站的基本域(默認情況下,example.com重定向到www.example.com)?

+0

這通常通過更改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}" 
+0

我試過了,有兩個問題:1.即時通訊重定向到https(即使即時通過本地http)和2.端口(8082)丟失。我知道我可以寫一些正則表達式和strig替換,但是這對於簡單的重定向來說似乎有點太複雜了...... – ahe

+0

你使用「http:// $ {hostname}」而不是「https:// $ {hostname}」 }「? – Besto

+0

我的端口仍然存在問題:(該端口似乎並不是location.hostname的一部分,但是location.port支持它。也許我會在端口80上運行本地服務器.. – ahe