How do I get the primary site URL? Is there an available variable for the primary site URL in a multi-site CraftCMS setup? I need a variable that I can attach to my logo that will take the user back to the primary site. I could hard code this, however, the URL needs to be environment aware. For example, on my local environment, the link should be https://www.mysite.local and when on development, the link should be https://www.mysite.dev.
You can output the primary site’s Base URL like this:



{{ craft.app.sites.primarySite.baseUrl }}


(craft.app.sites maps to craft\services\Sites.)

If your Base URL begins with an alias, you will need to parse it:

{{ alias(craft.app.sites.primarySite.baseUrl) }}


Altertatively, if you need to link to a sub-page of the primary site (not just its Base URL), you can do that with the siteUrl() function, which has a siteId argument.

{% set primary = craft.app.sites.primarySite %}
{{ siteUrl('sub/path', siteId=primary.id) }}


Note that if your primary site’s Base URL contains the @web alias, that will always just return the host info for the current request. So you may need to replace that with a hard-coded base URL (or use a custom alias) before this works as expected.