k-domains icon indicating copy to clipboard operation
k-domains copied to clipboard

Dynamically map N subdomains to a folder

Open ErickPetru opened this issue 4 years ago • 7 comments

First of all, nice work done with this package.

Now, imagine this use case:

  • pages/index.vue is a hot site offering a complex software as a service platform, like an e-commerce for example, with a domain like myplatform.com.
  • pages/admin/*.vue let users of the platform create their own stores choosing any subdomain they like.
  • pages/store/*.vue all the stores use the same logic, so all the products, categories, cart, order, etc., will be components inside the generic store folder.
  • Any access to any subdomain should point to the pages/store folder, like bestshoes.myplatform.com or foodsite.myplatform.com. And for sure we'd need to be able to get the current subdomain to use it as a param form API requests, so we can get the right data for each store.

Is it possible right now? Or is it even viable with some work in this module code?

ErickPetru avatar Oct 10 '20 17:10 ErickPetru

From my understanding, I guess you want to have shared folders across multiples subdomains?

let's say you have 2 subdomains bestshoes and foodsite so your config file looks like this:

  export default {
    buildModules: [
      [ "k-domains", {
          subDomains: ["bestshoes", "foodsite" ],
          rootDomain: "root-domain" 
      }]
    ]
}

but even in this case, if you create a folder at pages and without adding it to the subdomains option in nuxt.config, it will be automatically mapped to all the subdomains.

consider this is your pages tree

|   
|─pages
|   ├───bestshoes
|   ├───foodsite
|   ├───root-domain
|   └───store // not added in the config file
|         ├───index.vue
|         └───offer.vue

so even in this version, the shared will be accessible from all the domains all the following will work:

  • bestshoes.myplatform.com/store
  • bestshoes.myplatform.com/store/offer
  • foodsite.myplatform.com/store
  • foodsite.myplatform.com/store/offer

and for getting the current subdomain, so yes I will add it in future releases, I'll export a variable for the current subdomain.

madhusudanbabar avatar Oct 12 '20 04:10 madhusudanbabar

Hi @madhusudanbabar, thanks for your reply. I think we're almost on it but not yet.

The deal is that I don't want a "store" route. The desired URLs would be:

  • bestshoes.myplatform.com (index of the bestshoes e-commerce).
  • bestshoes.myplatform.com/cart (cart of bestshoes e-commerce).
  • foodsite.myplatform.com (index of the foodsite e-commerce).
  • foodsite.myplatform.com/cart (cart of foodsite e-commerce).
  • And so on... These are just samples, all other routes (like product routes) should be available for both subdomains.

I understand that I could put all those routes directly on pages folder and all would be available for every subdomain. But I can't do that, because the www.myplatform.com is the landing page of the platform and were the users create their own subdomains and configure it, so there would be files for the platform itself, not for each store. Can I have all store files mapped to each subdomain but not as a route of the subdomain?

Also, there are another deal: the names and the number of subdomains is unknow. A new user could arrive at the platform landing page and create a new account, registering a custom subdomain for their needs. So, is it possible to update on-the-fly the subDomains property on nuxt.config.js?

ErickPetru avatar Oct 12 '20 18:10 ErickPetru

sorry for the late reply, yes, I got it now, so in short, we've to map some folders to only selected subdomains with or w/o changing the route path, I mean including the store in the path or omitting it, both things are possible, I'll give it a try very soon, thanks

madhusudanbabar avatar Oct 18 '20 09:10 madhusudanbabar

是的,我也想要通过 * 泛域名指向pages里不同的文件夹

feikeq avatar Mar 17 '21 07:03 feikeq

I also have the same problem, its like a blog site, where my clients can choose different subdomain they want. can we use this module in that purpose? or only have static use case?

binumathew avatar Aug 08 '21 15:08 binumathew

Came here looking to have *.domain.com go to something like /pages/_subdomain.vue - is this at all possible?

acidjazz avatar Aug 20 '21 06:08 acidjazz

@madhusudanbabar was the variable for exposing current subdomain ever added?

Kameecoding avatar Sep 23 '21 12:09 Kameecoding