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
учебный класс.