Q:

Sitecore sites element clarification

newbie to sitecore. Could someone please help me understand how the  element below works, please? And, what sort of scenarios do I need to update  it.
<sites>
      <site name="shell" virtualFolder="/sitecore/shell" physicalFolder="/sitecore/shell" rootPath="/sitecore/content" startItem="/home" language="en" database="core" domain="sitecore" loginPage="/sitecore/login" content="master" contentStartItem="/Home" enableWorkflow="true" enableAnalytics="false" analyticsDefinitions="content" xmlControlPage="/sitecore/shell/default.aspx" browserTitle="Sitecore" htmlCacheSize="2MB" registryCacheSize="3MB" viewStateCacheSize="200KB" xslCacheSize="5MB" disableBrowserCaching="true"/>
      <site name="login" virtualFolder="/sitecore/login" physicalFolder="/sitecore/login" enableAnalytics="false" database="core" domain="sitecore" disableXmlControls="true"/>
      <site name="admin" virtualFolder="/sitecore/admin" physicalFolder="/sitecore/admin" enableAnalytics="false" enableWorkflow="true" domain="sitecore" loginPage="/sitecore/admin/login.aspx"/>
      <site name="service" virtualFolder="/sitecore/service" physicalFolder="/sitecore/service"/>
      <site name="modules_shell" virtualFolder="/sitecore modules/shell" physicalFolder="/sitecore modules/shell" rootPath="/sitecore/content" startItem="/home" language="en" database="core" domain="sitecore" content="master" enableAnalytics="false" enableWorkflow="true"/>
      <site name="modules_website" virtualFolder="/sitecore modules/web" physicalFolder="/sitecore modules/web" rootPath="/sitecore/content" startItem="/home" language="en" database="web" domain="extranet" allowDebug="true" cacheHtml="true"/>
      <site name="website" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/home" database="web" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false"/>
      <site name="scheduler" enableAnalytics="false" domain="sitecore"/>
      <site name="system" enableAnalytics="false" domain="sitecore"/>
      <site name="publisher" domain="sitecore" enableAnalytics="false" enableWorkflow="true"/>
    </sites>

A:

This is a configuration for the sites for Sitecore application. Every request is matched for all of the sites in this configuration and first matched <site> node is used to determine database, rootPath, startItem and other properties.
In a single site scenario for Sitecore application, most probably you won't need to change it - just use the standard config and place your content under the sitecore/content/home node.
You will need to change it if you're planning multi-site application though - add another site node with proper hostName, virtualFolder and other properties.
More information can be found here. And here is an example of how to add a new site to your Sitecore application.

