【问题标题】:PHP - Create xml sitemap that includes dynamic contentPHP - 创建包含动态内容的 xml 站点地图
【发布时间】:2012-01-27 14:48:49
【问题描述】:

这可能吗?单击相应的菜单项时,我有 4 个页面使用 PHP/AJAX 动态加载。

优化使用 PHP 动态加载的内容的最佳做法是什么?我尝试生成一个基本的 xml 站点地图,但唯一显示的页面是具有页面相对路径的后端处理程序,而不是页面本身。

感谢您的回复,谢谢。

【问题讨论】:

    标签: php sitemap dynamic-data


    【解决方案1】:

    嗯,Ajax 链接的最佳实践是您仍然在标签中指定一个地址,非 js 浏览器可以遵循(搜索引擎)。这样做的一个令人愉快的副作用(除了 SEO)是创建 XML 站点地图就像没有动态加载 Ajax 内容一样简单......

    您应该努力使您的 Ajax 内容在没有 JavaScript 的情况下正常运行。然后这些类型的大部分问题都会消失。

    根据评论更新

    根据下面 cmets 中的进一步说明,您有几个选项...

    最简单的方法是在动态内容的缓存版本之间实现一致的命名约定。然后你可以简单地使用globdocs(或opendirdocsreaddirdocs)扫描缓存目录,并根据目录中找到的文件名生成站点地图。

    另一种选择是创建某种“注册表”,每当您缓存动态页面时,该“注册表”就会更新。这可以是将站点地图文件名标识符映射到实际缓存文件名的数据库表或平面文本文件。然后,无论何时存储或删除缓存文件,您都可以在此注册表中添加或删除条目。

    作为我刚才提到的简单注册表的替代方案,您可以使用 XML 站点地图本身作为注册表。每次创建缓存文件时,您都可以将sitemap.xml 加载到DOMDocumentdocs 并实时操作站点地图,完成编辑后将其保存回磁盘。

    我认为这真的只是解决问题。

    【讨论】:

    • 谢谢先生,这是个好建议,如果启用了 JS,我确实设置了链接以禁用正常的浏览器行为。但是,我希望动态框架可供在搜索中找到“非动态”页面之一的用户使用。有什么建议吗?
    • 当您说 "dynamic," 时,您指的是从数据库生成的东西,而不一定是 Ajax?
    • 不一定,所有用 Ajax 加载的 php 文件都在一个自缓存存储库中,我这样设置它是为了在服务器端获得更好的性能。我真的没有足够的内容来使用数据库。我想我的目标可能是一种将非缓存页面(站点地图)重定向到动态页面(Ajax)的方法。
    • @Tribbey 更新答案供您阅读。祝你好运!
    • 非常感谢您提供有关此主题的详细信息,它非常有用.. 这个网站绝对很棒!
    猜你喜欢
    • 2011-03-03
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多