Sitecore 7.2 - Внутренние ссылки, возвращающие неправильные имена хостов

У меня есть 2 сайта Sitecore с одинаковым деревом сайтов (назовем их SiteABC и SiteXYZ). Иногда в редакторе Rich Text для страницы должна быть ссылка с подстраницы одного сайта на подстраницу с другой. Проблема, с которой я сталкиваюсь, заключается в том, что внутренние ссылки не возвращают правильные имена хостов.

ОБНОВЛЕНИЕ: я исправил внутреннюю проблему, связанную с привязкой страницы на SiteXYZ к странице на SiteABC. Смотрите обновленный код Web.config ниже.

<site name="siteabc" hostName="siteabc.local.com" targetHostName="siteabc.local.com:8080" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/siteabc" database="web" domain="extranet" allowDebug="true" cacheHtml="false" htmlCacheSize="10MB" registryCacheSize="0" viewStateCacheSize="0"
    xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false" />
<site name="wwwsiteabc" hostName="www.siteabc.local.com" targetHostName="siteabc.local.com:8080" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/siteabc" database="web" domain="extranet" allowDebug="true" cacheHtml="false" htmlCacheSize="10MB" registryCacheSize="0"
    viewStateCacheSize="0" xslCacheSize="5MB" filteredItemsCacheSize="2MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false" />
<site name="wwwsitexyz" hostName="www.sitexyz.local.org" targetHostName="sitexyz.local.org" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/sitexyz" 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="sitexyz" hostName="sitexyz.local.org" targetHostName="sitexyz.local.org" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content" startItem="/sitexyz" 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" />

У меня все еще проблемы с внутренними ссылками на SiteXYZ с SiteABC. Несмотря на то, что я установил targetHostName для SiteXYX равным sitexyz.local.org, проблема с URL все еще существует -8080 продолжает добавляться:

sitexyz.local.org:8080/parentPage/childPage.aspx

Это неверно, так как он должен быть sitexyz.local.org- нет 8080 прилагается.

Можно ли как-то исправить это, изменив настройку в файле Web.config? Я не хочу создавать какой-то пользовательский класс для переопределения чего-либо - я все еще изучаю Sitecore и не знаю, как бы я поступил так:\ Я предполагаю, что что-то есть в Web.config Я могу изменить, однако, просто не уверен, что, поскольку я не имел дело с такого рода проблемами ранее в Sitecore.

1 ответ

Решение

В многосайтовых средах, если вы хотите создать перекрестную связь между сайтами, всегда используйте targetHostName для каждого определения сайта. Это сообщает Sitecore, каким должно быть имя хоста сгенерированных URL-адресов, если элемент принадлежит данному сайту.

И для проблемы с портом, если port не указан для целевого сайта, Sitecore использует номер порта вашего текущего сайта. Вот почему Sitecore добавляет :8080 на ваши ссылки. Просто добавь port="80" на ваш SiteXYZ определение и проблема должны быть ушли.

Дополнительную документацию можно найти в статье Свойства атрибута сайта. По какой-то причине он не содержит информацию о порте, но он есть в SiteInfo учебный класс.

Другие вопросы по тегам