Sitecore 7.2 - 内部链接返回错误的主机名

时间:2017-04-12 15:33:48

标签: sitecore sitecore7.2

我有2个Sitecore站点具有相同的站点树(我们称之为SiteABC和SiteXYZ)。有时,在页面的富文本编辑器中,需要存在从一个站点的子页面到另一个站点的子页面的链接。我面临的问题是内部链接没有返回正确的主机名。

更新:我已修复了有关将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" />

我仍然无法从SiteABC获得SiteXYZ的内部链接。即使我已将SiteXYX的targetHostName设置为sitexyz.local.org,但网址仍然存在问题 - 8080仍在追加:

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

这是不正确的,因为它应该是sitexyz.local.org - 没有附加8080。

有什么办法可以通过调整Web.config文件中的设置来解决这个问题吗?我不想创建一些自定义类来覆盖任何东西 - 我仍在学习Sitecore,并且不知道我将如何做这样的事情:\我假设Web.config中有一些东西我可以改变,但不确定我之前在Sitecore中没有处理过这类问题。

1 个答案:

答案 0 :(得分:1)

对于多站点环境,如果要在站点之间进行交叉链接,请始终对每个站点定义使用targetHostName。这告诉Sitecore如果项目属于给定的站点,应该是生成的URL的主机名。

对于端口问题,如果未为目标网站指定port,则Sitecore会使用当前网站中的端口号。这就是Sitecore为您的链接添加:8080的原因。只需将port="80"添加到您的SiteXYZ定义中,问题就应该消失。

可以在site Attribute Properties 文章中找到更多文档。出于某种原因,它不包含端口信息,但它位于SiteInfo类中。