1

大家加油!

请耐心等待,我确实对此进行了一些研究,但我无法得出最终解决方案,因此我在这里听取您的意见。

我想要构建的是一个带有动态分层页面的小型 i18n-CMS,例如:

domain.tld/en/I/am/a/path

我想找到性能最低的方式,让我拥有漂亮的、SEO 和人性化的 URL。

我使用 Closure-Table,所以数据库中有两个表,一个用于页面节点,一个用于路径树,另一个表用于本地化页面,它引用某个页面节点(总共三个)。

到目前为止我的不同解决方案:

  1. 当然我可以制作一个算法,它会遍历所有不同的请求段,并检查“I”下的“am”下的“a”下是否有英文“path”,但考虑到大量的页面点击量。

或者是吗?

肯定的:我不需要在任何地方保存路径,因为它会被计算出来。所以移动页面不需要重新计算路径并再次保存。

  1. 我可以简单地将整个路径保存到数据库中,例如 VARCHAR(2000) 或其他内容,然后检查是否有一个带有英文路径“I/am/a/path”的页面并获取该路径。

这似乎相当混乱。

  1. 就像我现在做的那样。目前,我在路径的末尾添加了一个“ID”。如:

    domain.tld/en/I/am/a/path.1

因此,如果您输入“domain.tld/en.1”,您将被转发到具有正确 slug 的那个。但是在这里,我需要将每个页面的 slug 保存到数据库中。

我也很想摆脱 id(我可以用 mod-rewrite 和 .htaccess 做到这一点吗?)

关于这个还有更多的见解吗?由于我不是网络开发人员,所以我不太确定性能。

最亲切的问候,

梅伦

4

1 回答 1

0

在我看来,页面请求的发生频率比编辑更改页面地址的频率高一百万倍。所以我肯定会选择 save-to-db 选项。您可以做的是创建一个额外的字段,在其中保存该页面的“slug”,结合 .htaccess 您可以从“slug”地址重定向页面。例如,在 http://www.fuuu.com/futest-fu中,“futest-fu”是一个可以重写为 ID 号(或任何你想要的)的 slug。其中,Wordpress 以这种方式工作。查看此讨论以获取一些见解:http ://wordpress.org/support/topic/where-are-the-permalinks-slug-stored-in-the-database

于 2013-09-12T13:41:29.560 回答