按URL查询Tridion页面

按URL查询Tridion页面,tridion,Tridion,在我们的应用程序设计中,我们希望向用户介绍VanityURL概念。VanityURL将是该页面的自定义元。按URL查询页面的代理api不再工作,因为页面表中的URL不是虚荣URL。我们提出的解决方案是使用CustomMetaKeyCriteria和CustomMetaValueCriteria查询页面id,这对我们很有用 我希望这里有专家来评估这个解决方案,并提供一些意见 谢谢。问得好。对于查询每个页面请求的元数据,我会非常谨慎。您可能还需要小心地将这些数据存储为页面元数据,因为您需要确保这些值

在我们的应用程序设计中,我们希望向用户介绍VanityURL概念。VanityURL将是该页面的自定义元。按URL查询页面的代理api不再工作,因为页面表中的URL不是虚荣URL。我们提出的解决方案是使用CustomMetaKeyCriteria和CustomMetaValueCriteria查询页面id,这对我们很有用

我希望这里有专家来评估这个解决方案,并提供一些意见


谢谢。

问得好。对于查询每个页面请求的元数据,我会非常谨慎。您可能还需要小心地将这些数据存储为页面元数据,因为您需要确保这些值在出版物中的所有页面/URL中都是唯一的

为了解决唯一性问题,您可能需要创建一个事件系统,在保存页面时,该系统根据某种索引文件检查/保存值

该文件可能如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<VanityURLS PublicationID="tcm:0-33-1">
    <Page ID="tcm:3-24-64">
        <Vanity>/someURL.html</Vanity>
        <Vanity>/someotherURL.html</Vanity>
    </Page>
    <Page ID="tcm:3-25-64">
        <Vanity>/someURL.html</Vanity>
        <Vanity>/someotherURL.html</Vanity>
    </Page>
<VanityURLS>

/someURL.html
/someotherURL.html
/someURL.html
/someotherURL.html
然后,您可以定期发布该索引文件,并使用它查找请求的URL,并将它们映射到页面URI。然后,您可以通过页面的URI加载页面,或者如果您想使用现有代码,那么可以使用链接API从URI获取URL。然后可以将该值传递给GetPageMetaByURL()方法