SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
Sitecore Multi-Site Implementations 
Best Practices 
Prepared by: Eduardo Moraes and Roberto Barbedo
Sitecore Multi-Sites Best Practices 
• What is recommended by Sitecore 
• Challenges, solutions and recommendations from the 
Community 
The Nonlinear way 
Q&A
Sitecore and Multi-sites
So you want multiple 
sites running in your 
Sitecore instance, eh?
Out-of-the-box 
• Multi-site support 
• A default Sitecore installation defines a single published web 
site. However, Sitecore ships with a number of logical web 
sites defined in web.config. 
• These are: shell, login, testing, admin, modules_shell, 
modules_website, website, scheduler, system, publisher 
• New sites can be added to web.config under <sites> node
How to add a new site 
• Under <sites> node 
<site 
name="website" 
virtualFolder="/" 
physicalFolder="/" 
rootPath="/sitecore/content" 
startItem="/home" 
language="en" 
database="web" 
domain="extranet" 
allowDebug="true" 
cacheHtml="true" 
htmlCacheSize="10MB" 
enablePreview="true" 
enableDebugger="true" />
How? 
• Sitecore determines the site context based on the incoming 
URL and the following attributes: 
1. hostName 
2. virtualFolder (and physicalFolder) 
In other words, the hostName and virtualFolder attributes 
define a unique site in Sitecore.
Example 
• Under <sites> node 
<site 
name="mynewsite" 
hostName="www.mynewsite.com" 
virtualFolder="/" 
physicalFolder="/" 
rootPath="/sitecore/content/mynewsite" 
startItem="/homepage" 
language="en" 
database="web" 
domain="extranet" 
allowDebug="true" 
cacheHtml="true" 
htmlCacheSize="10MB" 
enablePreview="true" 
enableDebugger="true" />
No problemo, right? 
Well… not exactly.
So… what’s the “problem” with that? 
• Changes to web.config will cause an application restart 
- Requires a developer to add the configuration settings 
- Same application pool for all sites 
- Application pool restart 
- Session state will be lost 
- IIS log files are the same for all sites 
- Unique robots.txt and sitemap.xml for all sites 
- Other “hidden” problems… internal links, search results, modules, security
Some solutions...
Available on marketplace.sitecore.net 
• Makes it possible to add and configure multiple sites from inside the Sitecore 
client without editing the web.config file 
- For a long time was limited to a single server; version 3.1.2 should have it solved. 
- Still same application pool for all sites 
- Of course… still requires updates to hosts file and IIS binding
Isolating a site 
• It is possible to add multiple IIS sites pointing to the same Sitecore instance 
(physical website folder) 
- Gives you separate application pools for each site 
- Gives you an IIS log file for each site 
• This configuration is NOT recommended by Sitecore 
- All IIS sites are sharing the same data folder (possible issues with log files) 
- All IIS sites are sharing the same database (inconsistent memory cache) 
- Unknown side effects (not fully supported/tested by Sitecore)
Site isolation Sitecore’s recommendation 
Sitecore recommends that instead of having each IIS site pointing to the same 
installation folder, you duplicate the installation folder for each IIS site. 
It ensures that Sitecore log files are updated correctly, and similar issues are 
avoided. 
“This setup, however, requires that you have a runtime license for each site.” 
http://sdn.sitecore.net/Articles/Administration/Configuring%20Multiple%20Sites/Multiple%20IIS%20Sites.aspx
Robots.txt and Sitemap.xml 
• Independent sitemap xml files for search engines can be generated with the 
version 2.0 of the Sitemap XML module available at: 
- https://marketplace.sitecore.net/Modules/Sitemap_XML.aspx 
• Independent robots.txt can also be served for each site using the approach 
suggested in the sitecoreclimber blog: 
- http://sitecoreclimber.wordpress.com/2014/07/27/sitecore-multisite-robots-txt/
Best Practices: 
Recommend by the Community
#1. Configuration: Use patch files for site 
definitions 
• Sitecore provides an example SiteDefinition config file 
SiteDefinition.config.example 
An example of how we do it at Nonlinear will follow during our demo.
#2. Separate site configuration items and 
global configuration items 
• Each site should have its own configuration setting items 
• Configuration settings that are common for all sites should be 
shared in a global settings folder
#3. Content: Separate page components, 
site components and global components 
• Components that are common for all sites should stay in a global 
shared folder 
• Components that are common for various pages inside a site 
should stay in a site folder 
• Page specific components should reside in a page (item) level 
components folder
#4. Keep all site specific content under a 
site level home node 
• It facilitates the assignment of security settings to ensure only users 
of that site will have access to it
#5. Organize templates in site specific 
template folders 
#6. Organize layouts and sub-layouts in 
site specific folders
#7. Organize your Media Library items in 
site specific media folders 
• Media items that are shared with all sites can be maintained in a 
global media folder
#8. Make sure internal links are considering 
different site domains 
• Rendering.SiteResolving in web.config must be set to true 
• hostName must be properly set
#9. When sharing workflows between sites, 
combine it with role based content access 
Example: 
• User A wants to edit and submit content for site A only 
• He would need to have access to the Edit state of the workflow 
AND be part of the a role created to give him access to edit site A 
and its descendents
#10. Make sure to configure the indexes for 
each site 
• Lucene or SOLR indexes should be configured for each site
Demo - “the Nonlinear way”
The Nonlinear way - Keystone for Sitecore 
• Keystone is a development accelerator for Sitecore, Keystone is the 
result of 100s of site implementations. 
• It is ready for multi-sites
Use patch to add site configurations
Naming conventions for config files
Content - Shared x Exclusive
Components
Rules 
The rules engine in sitecore can be very useful to uncouple multi-site 
implementations 
• Insert Options 
• Placeholder Settings 
• Even RTE CSS definition
Insert Options 
Same template, 
different insert options
Resources
Sitecore Community 
Updates on the multiple sites module to support multiple CD done on version 3.1.2 by niket.ashesh: 
http://blog.xcentium.com/2013/09/sitecore-multiple-sites-manager/ 
Another way of organizing page level components, as suggested by Toby Gutierrez: 
http://www.awareweb.com/awareblog/8-15-14-SitecoreArchScalability 
Enable Multi-level Site Property Inheritance by Pascal Mathys: 
http://sitecore.unic.com/2014/08/08/enable-multi-level-site-property-inheritance 
Sitecore Managed Sites as Virtual Folders by Mark Ursino 
http://firebreaksice.com/sitecore-managed-sites-as-virtual-folders/ 
Robots.txt multiple sites approach suggested by Vlad Iobagiu: 
http://sitecoreclimber.wordpress.com/2014/07/27/sitecore-multisite-robots-txt/ 
Multisites resource index compiled by John West: 
http://www.sitecore.net/Learn/Blogs/Technical-Blogs/John-West-Sitecore- 
Blog/Posts/2013/10/Sitecore-Multisite-Part-0-Resource-Index.aspx
Tools 
https://marketplace.sitecore.net/en/Modules/Multisite_Quickstart.aspx 
https://marketplace.sitecore.net/en/Modules/Multisite_AliasResolver.aspx 
https://marketplace.sitecore.net/en/Modules/Multiple_Sites_Manager.aspx 
https://marketplace.sitecore.net/Modules/Sitemap_XML.aspx
• Keystone for Sitecore: http://keystoneforsitecore.com/
Questions?
Thank You! 
Eduardo Moraes - Senior Consultant Sitecore MVP 
@eduardomoraes 
blog: http://pageditor.wordpress.com/ 
Roberto Barbedo - Certified Sitecore Developer 
@RobertoBRBR 
blog: http://www.sitecoreinsight.com/

Contenu connexe

Plus de nonlinear creations

Sitecore User Group: Session State and Sitecore xDB
Sitecore User Group: Session State and Sitecore xDB Sitecore User Group: Session State and Sitecore xDB
Sitecore User Group: Session State and Sitecore xDB nonlinear creations
 
Unofficial Sitecore Training - Data enrichment and personalization
Unofficial Sitecore Training - Data enrichment and personalizationUnofficial Sitecore Training - Data enrichment and personalization
Unofficial Sitecore Training - Data enrichment and personalizationnonlinear creations
 
The SickKids Foundation on enabling a digital CXM 'hub' with Sitecore
The SickKids Foundation on enabling a digital CXM 'hub' with SitecoreThe SickKids Foundation on enabling a digital CXM 'hub' with Sitecore
The SickKids Foundation on enabling a digital CXM 'hub' with Sitecorenonlinear creations
 
Design Credibility: No one trusts an ugly website
Design Credibility: No one trusts an ugly websiteDesign Credibility: No one trusts an ugly website
Design Credibility: No one trusts an ugly websitenonlinear creations
 
National Wildlife Federation- OMS- Dreamcore 2011
National Wildlife Federation- OMS- Dreamcore 2011National Wildlife Federation- OMS- Dreamcore 2011
National Wildlife Federation- OMS- Dreamcore 2011nonlinear creations
 
Sitecore MVC: Converting Web Forms sublayouts
Sitecore MVC: Converting Web Forms sublayoutsSitecore MVC: Converting Web Forms sublayouts
Sitecore MVC: Converting Web Forms sublayoutsnonlinear creations
 
Sitecore MVC: What it is and why it's important
Sitecore MVC: What it is and why it's importantSitecore MVC: What it is and why it's important
Sitecore MVC: What it is and why it's importantnonlinear creations
 
Spiral into control with Knowledge Management
Spiral into control with Knowledge ManagementSpiral into control with Knowledge Management
Spiral into control with Knowledge Managementnonlinear creations
 
8 tips for successful change management
8 tips for successful change management8 tips for successful change management
8 tips for successful change managementnonlinear creations
 
Cms project-failing-the-software-or-the-partner
Cms project-failing-the-software-or-the-partnerCms project-failing-the-software-or-the-partner
Cms project-failing-the-software-or-the-partnernonlinear creations
 
Understanding cloud platform services
Understanding cloud platform servicesUnderstanding cloud platform services
Understanding cloud platform servicesnonlinear creations
 
ALM 101: An introduction to application lifecycle management
ALM 101: An introduction to application lifecycle managementALM 101: An introduction to application lifecycle management
ALM 101: An introduction to application lifecycle managementnonlinear creations
 
Understanding web engagement management (WEM) and your social media presence
Understanding web engagement management (WEM) and your social media presenceUnderstanding web engagement management (WEM) and your social media presence
Understanding web engagement management (WEM) and your social media presencenonlinear creations
 
Sitecore: Understanding your visitors and user personas
Sitecore: Understanding your visitors and user personas Sitecore: Understanding your visitors and user personas
Sitecore: Understanding your visitors and user personas nonlinear creations
 
Social intranets: 10 ways to drive adoption
Social intranets: 10 ways to drive adoptionSocial intranets: 10 ways to drive adoption
Social intranets: 10 ways to drive adoptionnonlinear creations
 
Sitecore 7: A developers quest to mastering unit testing
Sitecore 7: A developers quest to mastering unit testingSitecore 7: A developers quest to mastering unit testing
Sitecore 7: A developers quest to mastering unit testingnonlinear creations
 

Plus de nonlinear creations (19)

Sitecore User Group: Session State and Sitecore xDB
Sitecore User Group: Session State and Sitecore xDB Sitecore User Group: Session State and Sitecore xDB
Sitecore User Group: Session State and Sitecore xDB
 
Sitecore on Azure
Sitecore on AzureSitecore on Azure
Sitecore on Azure
 
Unofficial Sitecore Training - Data enrichment and personalization
Unofficial Sitecore Training - Data enrichment and personalizationUnofficial Sitecore Training - Data enrichment and personalization
Unofficial Sitecore Training - Data enrichment and personalization
 
The SickKids Foundation on enabling a digital CXM 'hub' with Sitecore
The SickKids Foundation on enabling a digital CXM 'hub' with SitecoreThe SickKids Foundation on enabling a digital CXM 'hub' with Sitecore
The SickKids Foundation on enabling a digital CXM 'hub' with Sitecore
 
Intranet trends to watch
Intranet trends to watchIntranet trends to watch
Intranet trends to watch
 
Design Credibility: No one trusts an ugly website
Design Credibility: No one trusts an ugly websiteDesign Credibility: No one trusts an ugly website
Design Credibility: No one trusts an ugly website
 
National Wildlife Federation- OMS- Dreamcore 2011
National Wildlife Federation- OMS- Dreamcore 2011National Wildlife Federation- OMS- Dreamcore 2011
National Wildlife Federation- OMS- Dreamcore 2011
 
Sitecore MVC: Converting Web Forms sublayouts
Sitecore MVC: Converting Web Forms sublayoutsSitecore MVC: Converting Web Forms sublayouts
Sitecore MVC: Converting Web Forms sublayouts
 
Sitecore MVC: What it is and why it's important
Sitecore MVC: What it is and why it's importantSitecore MVC: What it is and why it's important
Sitecore MVC: What it is and why it's important
 
Spiral into control with Knowledge Management
Spiral into control with Knowledge ManagementSpiral into control with Knowledge Management
Spiral into control with Knowledge Management
 
Icebergs
IcebergsIcebergs
Icebergs
 
8 tips for successful change management
8 tips for successful change management8 tips for successful change management
8 tips for successful change management
 
Cms project-failing-the-software-or-the-partner
Cms project-failing-the-software-or-the-partnerCms project-failing-the-software-or-the-partner
Cms project-failing-the-software-or-the-partner
 
Understanding cloud platform services
Understanding cloud platform servicesUnderstanding cloud platform services
Understanding cloud platform services
 
ALM 101: An introduction to application lifecycle management
ALM 101: An introduction to application lifecycle managementALM 101: An introduction to application lifecycle management
ALM 101: An introduction to application lifecycle management
 
Understanding web engagement management (WEM) and your social media presence
Understanding web engagement management (WEM) and your social media presenceUnderstanding web engagement management (WEM) and your social media presence
Understanding web engagement management (WEM) and your social media presence
 
Sitecore: Understanding your visitors and user personas
Sitecore: Understanding your visitors and user personas Sitecore: Understanding your visitors and user personas
Sitecore: Understanding your visitors and user personas
 
Social intranets: 10 ways to drive adoption
Social intranets: 10 ways to drive adoptionSocial intranets: 10 ways to drive adoption
Social intranets: 10 ways to drive adoption
 
Sitecore 7: A developers quest to mastering unit testing
Sitecore 7: A developers quest to mastering unit testingSitecore 7: A developers quest to mastering unit testing
Sitecore 7: A developers quest to mastering unit testing
 

Dernier

Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Dernier (20)

Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

Sitecore Multi-Sites

  • 1. Sitecore Multi-Site Implementations Best Practices Prepared by: Eduardo Moraes and Roberto Barbedo
  • 2. Sitecore Multi-Sites Best Practices • What is recommended by Sitecore • Challenges, solutions and recommendations from the Community The Nonlinear way Q&A
  • 4. So you want multiple sites running in your Sitecore instance, eh?
  • 5. Out-of-the-box • Multi-site support • A default Sitecore installation defines a single published web site. However, Sitecore ships with a number of logical web sites defined in web.config. • These are: shell, login, testing, admin, modules_shell, modules_website, website, scheduler, system, publisher • New sites can be added to web.config under <sites> node
  • 6. How to add a new site • Under <sites> node <site name="website" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/home" language="en" database="web" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" enablePreview="true" enableDebugger="true" />
  • 7. How? • Sitecore determines the site context based on the incoming URL and the following attributes: 1. hostName 2. virtualFolder (and physicalFolder) In other words, the hostName and virtualFolder attributes define a unique site in Sitecore.
  • 8. Example • Under <sites> node <site name="mynewsite" hostName="www.mynewsite.com" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content/mynewsite" startItem="/homepage" language="en" database="web" domain="extranet" allowDebug="true" cacheHtml="true" htmlCacheSize="10MB" enablePreview="true" enableDebugger="true" />
  • 9. No problemo, right? Well… not exactly.
  • 10. So… what’s the “problem” with that? • Changes to web.config will cause an application restart - Requires a developer to add the configuration settings - Same application pool for all sites - Application pool restart - Session state will be lost - IIS log files are the same for all sites - Unique robots.txt and sitemap.xml for all sites - Other “hidden” problems… internal links, search results, modules, security
  • 12. Available on marketplace.sitecore.net • Makes it possible to add and configure multiple sites from inside the Sitecore client without editing the web.config file - For a long time was limited to a single server; version 3.1.2 should have it solved. - Still same application pool for all sites - Of course… still requires updates to hosts file and IIS binding
  • 13. Isolating a site • It is possible to add multiple IIS sites pointing to the same Sitecore instance (physical website folder) - Gives you separate application pools for each site - Gives you an IIS log file for each site • This configuration is NOT recommended by Sitecore - All IIS sites are sharing the same data folder (possible issues with log files) - All IIS sites are sharing the same database (inconsistent memory cache) - Unknown side effects (not fully supported/tested by Sitecore)
  • 14. Site isolation Sitecore’s recommendation Sitecore recommends that instead of having each IIS site pointing to the same installation folder, you duplicate the installation folder for each IIS site. It ensures that Sitecore log files are updated correctly, and similar issues are avoided. “This setup, however, requires that you have a runtime license for each site.” http://sdn.sitecore.net/Articles/Administration/Configuring%20Multiple%20Sites/Multiple%20IIS%20Sites.aspx
  • 15. Robots.txt and Sitemap.xml • Independent sitemap xml files for search engines can be generated with the version 2.0 of the Sitemap XML module available at: - https://marketplace.sitecore.net/Modules/Sitemap_XML.aspx • Independent robots.txt can also be served for each site using the approach suggested in the sitecoreclimber blog: - http://sitecoreclimber.wordpress.com/2014/07/27/sitecore-multisite-robots-txt/
  • 16. Best Practices: Recommend by the Community
  • 17. #1. Configuration: Use patch files for site definitions • Sitecore provides an example SiteDefinition config file SiteDefinition.config.example An example of how we do it at Nonlinear will follow during our demo.
  • 18. #2. Separate site configuration items and global configuration items • Each site should have its own configuration setting items • Configuration settings that are common for all sites should be shared in a global settings folder
  • 19. #3. Content: Separate page components, site components and global components • Components that are common for all sites should stay in a global shared folder • Components that are common for various pages inside a site should stay in a site folder • Page specific components should reside in a page (item) level components folder
  • 20. #4. Keep all site specific content under a site level home node • It facilitates the assignment of security settings to ensure only users of that site will have access to it
  • 21. #5. Organize templates in site specific template folders #6. Organize layouts and sub-layouts in site specific folders
  • 22. #7. Organize your Media Library items in site specific media folders • Media items that are shared with all sites can be maintained in a global media folder
  • 23. #8. Make sure internal links are considering different site domains • Rendering.SiteResolving in web.config must be set to true • hostName must be properly set
  • 24. #9. When sharing workflows between sites, combine it with role based content access Example: • User A wants to edit and submit content for site A only • He would need to have access to the Edit state of the workflow AND be part of the a role created to give him access to edit site A and its descendents
  • 25. #10. Make sure to configure the indexes for each site • Lucene or SOLR indexes should be configured for each site
  • 26. Demo - “the Nonlinear way”
  • 27. The Nonlinear way - Keystone for Sitecore • Keystone is a development accelerator for Sitecore, Keystone is the result of 100s of site implementations. • It is ready for multi-sites
  • 28. Use patch to add site configurations
  • 29. Naming conventions for config files
  • 30. Content - Shared x Exclusive
  • 32. Rules The rules engine in sitecore can be very useful to uncouple multi-site implementations • Insert Options • Placeholder Settings • Even RTE CSS definition
  • 33. Insert Options Same template, different insert options
  • 35. Sitecore Community Updates on the multiple sites module to support multiple CD done on version 3.1.2 by niket.ashesh: http://blog.xcentium.com/2013/09/sitecore-multiple-sites-manager/ Another way of organizing page level components, as suggested by Toby Gutierrez: http://www.awareweb.com/awareblog/8-15-14-SitecoreArchScalability Enable Multi-level Site Property Inheritance by Pascal Mathys: http://sitecore.unic.com/2014/08/08/enable-multi-level-site-property-inheritance Sitecore Managed Sites as Virtual Folders by Mark Ursino http://firebreaksice.com/sitecore-managed-sites-as-virtual-folders/ Robots.txt multiple sites approach suggested by Vlad Iobagiu: http://sitecoreclimber.wordpress.com/2014/07/27/sitecore-multisite-robots-txt/ Multisites resource index compiled by John West: http://www.sitecore.net/Learn/Blogs/Technical-Blogs/John-West-Sitecore- Blog/Posts/2013/10/Sitecore-Multisite-Part-0-Resource-Index.aspx
  • 36. Tools https://marketplace.sitecore.net/en/Modules/Multisite_Quickstart.aspx https://marketplace.sitecore.net/en/Modules/Multisite_AliasResolver.aspx https://marketplace.sitecore.net/en/Modules/Multiple_Sites_Manager.aspx https://marketplace.sitecore.net/Modules/Sitemap_XML.aspx
  • 37. • Keystone for Sitecore: http://keystoneforsitecore.com/
  • 39. Thank You! Eduardo Moraes - Senior Consultant Sitecore MVP @eduardomoraes blog: http://pageditor.wordpress.com/ Roberto Barbedo - Certified Sitecore Developer @RobertoBRBR blog: http://www.sitecoreinsight.com/