2016-02-26 37 views
9

私はサブドメインとの使用のための反応ルータを設定したいと思います。私は、サブドメインプロキシロジックがどこにあるべきか確信しています。反応ルータのサブドメイン

私が欲しい:coolestblog.com/benben/profile

にルーティングするcoolestblog.com/mohammed/profile benben.coolestblog.com/profileにルーティングするcoolestblog.com/roxy/profile mohammed.coolestblog.com/profileにルーティングする

roxy.coolestblog.com/profile別のユースケース:ルートへ

en.coolestblog.com/some-articlecoolestblog.com/en/some-article fr.coolestblog.com/un-articleにルーティングするにcoolestblog.com/fr/un-article es.coolestblog.com/una-articleからcoolestblog.com/es/una-article

私はすでにサブドメインなしで動作させています。

クライアントとサーバーの両方で動作するようにするにはどうすればよいですか?

+0

これには解決策がありますか?私は同じ必要があるように見える... –

答えて

1

ブラウザ履歴APIではGoogleの能力が制限されていますが、これを達成するためにwindow.locationと直接対話できます。

はちょうどあなたのルータを設定する前に、あなたはこのような何かを行うことによって、URLを変更することができます。もちろん

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; 
} 

、これはその点に注意して。たとえば、ホスト名が明示的にわからない場合、サブドメインがあるかどうかを正確に判断することはできません。次のURLが何であるべきかについては何も仮定していませんが、それを解決するのは簡単ではありません。

関連する問題