3

在我们的应用程序设计中,我们想向用户介绍 VanityURL 概念。VanityURL 将是页面的自定义元。通过 URL 查询页面的代理 api 不再起作用,因为虚 url 不是 PAGE 表中的那个。我们提出的解决方案是使用 CustomMetaKeyCriteria 和 CustomMetaValueCriteria 查询页面 id,它对我们有用。

我想请专家来评估这个解决方案并提供一些意见。

谢谢。

4

1 回答 1

3

好问题。我会谨慎地查询每个页面请求的元数据。您可能还需要小心地将这些数据存储为页面元数据,因为您需要确保这些值在出版物中的所有页面/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>

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

于 2012-10-16T22:46:53.947 回答