url - 如果我在 url 中公开实体 key ,有什么优点/缺点?

标签 url symfony routing seo

我知道使用 symfony2 通过路由系统获取漂亮的 url 非常简单,我喜欢它。但是,当路由参数仅基于 slug 时,我必须通过 slug 找到它。

$em->getRepository('Bundle:Entity')->findOneBySlug($slug);

我正在考虑将这两个参数结合起来,例如 stackoverflow http://mysite.com/articles/234/the-title .仅为 SEO 维护 slug 参数建议并直接使用实体 ID (234) 查找。

$em->getRepository('Bundle:Entity')->find($id);

使用此策略的优点/缺点是什么。我是对的吗?

最佳答案

我会按照您的建议去做,同时使用唯一标识符和 slug,因为这样您就不必担心唯一的 slug。

但是您应该做的一件事是检查 slug 是否有效。 所以不要使用这样的 URL:/articles/{id}/{unchecked-slug},因为如果这样做,您可以使用无限数量的不同/恶意 URL 访问同一篇文章,即/articles/123/the-correct-title 和/artcle/123/some-dirty-words。

所以我建议使用这样的东西:

$em->getRepository('Bundle:Entity')->findOneBy(array('slug' => $slug, 'id' => $id);

我不是 SEO 专家,但我认为较短的 URL 并不重要,只要它包含有用的词,就可能成为搜索的一部分。

关于url - 如果我在 url 中公开实体 key ,有什么优点/缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11681604/

相关文章:

html - 在不执行 GET 的情况下检查重复内容

swift - 如何忽略 URL 中的参数?

php - 原则 - 在两个日期之间获得销售

php - Symfony3 自定义验证约束与参数抛出异常

.net - mvc路由问题——使用整型参数

AngularJS重新初始化 Controller

Angular 从应用程序根组件导航到嵌套路由中的辅助路由

java - 如何从保管箱链接读取文本文件

php - 清理字符串以使其 URL 和文件名安全?

symfony - 如何在 Symfony 中配置 http_basic 防火墙以在响应正文中返回 JSON?