我正在研究将用户名设置为"子域名"的可能性。在Angular 2.从我迄今为止所做的研究看来,例如,在IIS上托管的系统所需要的只是URL重写,以将示例www.mywebsite.com/username
或www.mywebsite.com?user=username
转换为{{ 1}}。 (参考文献:IIS URL Rewrite,Example Setup)
我可能错了,但我的想法是,在IIS中为Angular 2应用程序设置它并不会产生影响,因为访问路由时服务器没有被访问 - 路由由Angular本身处理。 / p>
关于我的问题:有没有办法可以在Angular 2应用程序中处理它?</ p>
答案 0 :(得分:1)
所以我知道我之前已经问过这个问题,但是我想我将描述在Angular应用程序中进行此操作的过程。
首先在服务器上设置子域。在Angular应用程序中提取子域,您可以使用正则表达式提取子域。
示例
getAndSaveSubdomain() {
let getSubdomainRegex = /(?:http[s]*\:\/\/)*(.*?)\.(?=[^\/]*\..{2,5})/i;
let fullURL: string = window.location.host;
let result: RegExpMatchArray = fullURL.match(getSubdomainRegex);
let subdomain: string;
if (result !== null) {
subdomain = result[1];
if (subdomain !== 'www') {
localStorage.setItem('subdomain', subdomain);
}
}
}
有关正则表达式使用情况的说明,请查看:https://regex101.com/r/OnkLD5/1