I have a multi site Sitecore installation. I am trying to create an email that gets sent out that contains links back to the Sitecore editor for each item. I have it all working except the correct domain name. Given an item ID how would I use the API to get the domain for that item? For example - I want to produce a URL like the following:
http://www.mySite1.com/sitecore/shell/sitecore/content/Applications/Content Editor.aspx?id=id
The only part I'm not sure about is how to programmatically retrieve the "www.mySite1.com" part. Any ideas? I can never find stuff like this in the Sitecore API although I am sure it is there somewhere.
I am assuming you have multiple sites set up in the <sites>
section of your web.config file and that each one has a hostName
property defined e.g.
<site name="website1" hostName="website1.com" ...
<site name="website2" hostName="website2.com" ...
You can use the SiteManager class to access info about each sites including the hostName
Sitecore.Sites.SiteManager.GetSite("website1").Properties["hostName"]
.. if you are running in a Sitecore page you can access the currently running Site
object using
Sitecore.Context.Site
Hope this helps :)
I think there are a few approaches for you:
In your <linkManager>
config, set alwaysIncludeServerUrl
to true
so calls to GetItemUrl()
have absolute full URLs.
Set the barely documented targetHostName
attribute on the <site ... />
node in your web.config
and ensure the Sitecore config setting Rendering.SiteResolving
is set to true
. This should then resolve the correct target hostname given the site in context.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With