The reason why you are receiving the SiteContext
as micrositemain is because url.Host
will return microsite.mysite.com
.
Please see updated SiteDefinition
below:
name="micrositemainone"
hostName="microsite.mysite.com"
virtualFolder="/{language_here}/company1" //ex: /en/company1
startItem="/en/Home"
physicalFolder="/{language_here}/company1"
rootPath="/sitecore/content/Site/Microsites/company1"
SiteSettingsNode="/sitecore/content/Site/Microsites/company1/Site Settings"
name="micrositemain"
hostName="microsite.mysite.com"
virtualFolder="/"
startItem="/Home"
physicalFolder="/"
rootPath="/sitecore/content/Site/Microsite/Main"
SiteSettingsNode="/sitecore/content/Site/Microsites/Main/Site Settings"
UPDATE
I have tested the above locally and saw that you need to update the setting Languages.AlwaysStripLanguage
to false
and add the above changes to the SiteDefinition.config
.
Based on your question updates, I would suggest to manage it through the code, which is, option 2. The reason because you will have more control of it.