2012-02-10 6 views
1

Итак, я хочу, чтобы настроить свои отображения адресов для домашних страниц в SitecoreНастройка URL отображение нескольких сайтов в Sitecore

мои сайты домашние страницы являются узлами, как это (ниже/Sitecore/содержание):

/FOO/us 
/FOO/ca 
/FOO/..other countries 
/BAR 

Я хочу достичь их по следующим адресам:

mysite.com/us -> /FOO/us 
mysite.com/ca -> /FOO/ca 
mysite.com/bar -> /BAR 

мои сайты декларации подобны этому

<site name="FOO-US" virtualFolder="/us" physicalFolder="/us" rootPath="/sitecore/content" startItem="/FOO/us" 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="FOO-CA" virtualFolder="/ca" physicalFolder="/ca" rootPath="/sitecore/content" startItem="/FOO/ca" 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="BAR" virtualFolder="/bar" physicalFolder="/bar" rootPath="/sitecore/content" startItem="/bar" 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" /> 

Однако, я никогда не получаю ожидаемое разрешение URL-адреса, в основном я получаю 404 или добираюсь до основного узла по умолчанию.

Я тестирую эту многостраничную конфигурацию в sitecore (6.5) в своем локальном IIS (как версии 6.0, так и 7.0 без везения). Это возможно?

+0

У меня нет обоев передо мной, но вы могли бы это сделать, имея два определения сайта с одним и тем же атрибутом hostname (в этом случае mysite). Затем вы помещаете 'virtualFolder = '/ bar'' в запись сверху (потому что я думаю, что сайты разрешены сверху вниз). Тогда вы можете получить то, что вам нужно. –

ответ

2

Вы не можете заставить это работать из коробки, потому что все они находятся на одном и том же имени (mysite.com). Вы можете заставить его работать, если вы установите startItem в FOO и подставьте его под ним. Тогда все три отдельных «сайта» будут непосредственными детьми корня (FOO). Например.

/Foo/us 
/Foo/ca 
/Foo/bar 
+0

Есть ли способ реализовать это, возможно, с помощью пользовательского HttpRequestProcessor или ItemResolver? – lurscher

+0

Да, это скорее всего было бы обычным «ItemResolver» в конвейере «HttpRequest». Возможно, вам придется настроить, где он вызывает 'GetItem()' из 'args'. –

0

Вы удалили по умолчанию определение 'веб-сайт'? (вы, вероятно, должны). Вы можете быть в состоянии сделать это, манипулируя корневой и startItem пути, возможно:

rootPath="/sitecore/content/FOO" startItem="/us" 
rootPath="/sitecore/content/FOO" startItem="/ca" 
rootPath="/sitecore/content" startItem="/bar" 

или, может быть (непроверенным):

rootPath="/sitecore/content/FOO/us" startItem="" 
rootPath="/sitecore/content/FOO/ca" startItem="" 
rootPath="/sitecore/content" startItem="/bar" 

Если это просто URLs тщеславие, а не отдельные сайтов, а затем оставить config как один сайт и вместо этого используйте переадресацию (используйте один из модулей перенаправления).

Смежные вопросы