---
title: "Determining website context"
slug: "determining-website-context"
abstract: "Sitecore determines the website context based on the incoming URL and the hostName and virtualFolder attributes."
---
# Determining website context

You [configure additional managed websites](https://doc.sitecore.com/xp/en/developers/91/platform-administration-and-architecture/configure-multiple-managed-websites.html "Configure multiple managed websites") for different purposes and different domains by adding them to the site definition node in the `Sitecore.config` file. For example, you can define a new site to be your published public-facing site or to be used by content editors to access the content management system.

Sitecore determines the website context based on the incoming URL and the following two attributes:

- `hostName` – specifies the name of the website as it appears in the incoming URL. It can contain wildcards.
- `virtualFolder` – the physical path to the website root folder.

When Sitecore receives an incoming URL, it first compares the URL to the `hostName` attribute of each site in the `<sites>` list in the config file.

If the `hostName` attribute matches the incoming URL or the `hostName` attribute is empty, Sitecore next compares the `virtualFolder` attribute.

Sitecore uses the first site definition in the `<sites>` list where the `hostName` and `virtualFolder` attributes match the incoming URL as the context site.

> [!note]
> Sitecore checks for sites in the same order that they occur in the list. Therefore, you must list sites starting with the most specific entry and ending with the most general entry. For example, if you have a website where `hostName` is mysite.com.au and another website where `hostName` is mysite.com, the entry for mysite.com.au must be first in the list. Otherwise, an incoming URL for mysite.com.au will match the entry for mysite.com first.

> [!note]
> Sitecore determines the website context differently for the Experience Editor. Sites are only resolved under the `startItem` item that is defined in the configuration of a site, If you have multiple sites and an item is not under any `startItem` item, Sitecore resolves a site for the item as *Preview.DefaultSite*.
>
> You can change this logic by customizing the `Sitecore.Shell.Applications.WebEdit.Commands.OpenExperienceEditor` from the `Sitecore.ExperienceEditor` assembly. This class is used by the `webedit:openexperienceeditor` command.