自定义sitecore中多个站点的url映射

自定义sitecore中多个站点的url映射,sitecore,sitecore6,url-mapping,Sitecore,Sitecore6,Url Mapping,因此,我想自定义我的URL到Sitecore内主页的映射 我的网站主页是这样的节点(在/sitecore/content下面): 我想通过以下URL与他们联系: mysite.com/us -> /FOO/us mysite.com/ca -> /FOO/ca mysite.com/bar -> /BAR 我的网站声明如下 <site name="FOO-US" virtualFolder="/us" physicalFolder="/us" rootPath="/si

因此,我想自定义我的URL到Sitecore内主页的映射

我的网站主页是这样的节点(在/sitecore/content下面):

我想通过以下URL与他们联系:

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或默认的主节点


我正在本地IIS中的sitecore(6.5)中测试此多站点配置(6.0和7.0版本都没有运气)。这有可能吗?

你不能马上解决这个问题,因为它们都在同一个主机名(mysite.com)上。如果你把startItem设置为FOO,并在它下面加上横杆,你就可以让它工作。然后,所有三个独立的“站点”都将是根(FOO)的直接子级。例如


您是否删除了默认的“网站”定义?(你可能应该这样做)。您可以通过改变根路径和星形路径来实现这一点,也许:

rootPath="/sitecore/content/FOO" startItem="/us"
rootPath="/sitecore/content/FOO" startItem="/ca"
rootPath="/sitecore/content" startItem="/bar"
或者(未经测试):


如果这些只是虚荣的URL而不是单独的站点,那么将配置保留为一个站点,并改用重定向(使用其中一个重定向模块)

有没有一种方法可以通过定制的HttpRequestProcessor或ItemResolver来实现这一点?是的,它很可能是
HttpRequest
管道中的定制
ItemResolver
。您可能需要调整它从
args
调用
GetItem()
的位置。我前面没有sitecore,但您可以通过使用具有相同主机名属性的两个站点定义(在本例中为mysite)来实现这一点。然后,您将在顶部的条目中放置一个
virtualFolder='/bar'
(因为我认为站点是从上到下解析的)。然后,你可能会得到你想要的。
/Foo/us
/Foo/ca
/Foo/bar
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"