2016-02-26 26 views
9

Vorrei installare il router di risposta per l'utilizzo con i sottodomini. Non sono sicuro di dove dovrebbe essere la logica per il proxy sottodominio.Sottodominio nel router di risposta

voglio:

roxy.coolestblog.com/profile per il routing a coolestblog.com/roxy/profile mohammed.coolestblog.com/profile per il routing a coolestblog.com/mohammed/profile benben.coolestblog.com/profile per il routing a coolestblog.com/benben/profile

un altro caso d'uso:

en.coolestblog.com/some-article per il routing a coolestblog.com/en/some-article fr.coolestblog.com/un-article per instradare a coolestblog.com/fr/un-article es.coolestblog.com/una-article per instradare a coolestblog.com/es/una-article

L'ho già utilizzato senza il sottodominio.

Come posso ottenere questo risultato in modo che funzioni sia su client che su server?

+0

Hai trovato qualche soluzione a questo? Sembra che io abbia lo stesso bisogno ... –

risposta

1

Mentre l'API della cronologia del browser limita le nostre capacità, è possibile interagire direttamente con window.location per ottenere ciò.

Poco prima di configurare il router, è possibile modificare l'URL facendo qualcosa di simile:

let host = window.location.host; 
let protocol = window.location.protocol; 
let parts = host.split("."); 
let subdomain = ""; 
// If we get more than 3 parts, then we have a subdomain 
// INFO: This could be 4, if you have a co.uk TLD or something like that. 
if (parts.length >= 3) { 
    subdomain = parts[0]; 
    // Remove the subdomain from the parts list 
    parts.splice(0, 1); 
    // Set the location to the new url 
    window.location = protocol + "//" + parts.join(".") + "/" + subdomain; 
} 

Naturalmente, questo ha i suoi avvertimenti. Ad esempio, se non si conosce il nome host in modo esplicito, non è possibile determinare correttamente se esiste un sottodominio o meno. Non fa alcuna supposizione su quale dovrebbe essere il seguente URL, ma sarebbe banale da risolvere per quello.