【问题标题】:manage with URL duplication in Symfony 2Symfony 2 中的 URL 重复管理
【发布时间】:2014-08-04 09:10:25
【问题描述】:

我有一个房地产网站,用 Symfony 2 编码。

每天早上,我们都会自动从房地产软件导入房产,并更新数据库。

URL 被重写为属性的标题和 ID,例如:

.../%title%-%ID% 

有时,房地产经纪人会更改房产的名称,因此 URL 也会发生变化。

它在 Google 中创建了重复的内容,因为同一个页面现在存在 2 个 URL。

我想修复它,自动添加从旧 URL 到新 URL 的重定向 301。

如何在 Symfony 2 中做到这一点?

感谢您的帮助!

马修

【问题讨论】:

  • 您在检测 URL 是否或发送 301 响应时遇到问题?
  • 是的,我的问题是检测到网址发生了变化。
  • ID 是常量吗?你不能用它来检测名称的变化吗?能否请您添加路由的代码,更新标题的代码和数据库的方案?
  • 是的,该属性有一个统一 ID。这里是一个例子:第一个 URL 是:.../vente-ferme-bressane-entierement-renovee-aproximite-de-belleville-CH+28416 当代理更改属性的标题时:.../vente-ferme- bressane-entierement-renovee-4-km-de-chatillon-sur-chalaronne-CH+28416(抱歉,它是法语,但您可以在网址末尾看到 ID)
  • 有什么建议吗?谢谢

标签: php symfony redirect duplicate-removal


【解决方案1】:

感谢您的所有 cmets。 我正在与 Mat Bios 合作,您帮助我们找到解决方案。

我们找到了一种方法来检测旧 url,然后在控制器中进行重定向 301。

return $this->redirect($currentUrl, 301);

谢谢

【讨论】:

    【解决方案2】:

    考虑添加一个通用 URL。通用 URL 将是 Google 知道的。任何带有标题的 Url 都会被路由到通用 Url。

    创建一个规则,捕获所有具有//myApp/%title%-%ID% 模式的网址并导致重定向//myapp/property/%ID%

    您可以在您的 routing.yml 中完成所有这些操作

    GenericRoute:   pattern: /myapp/properties/{propertyId}   
        defaults:
          _controller: Bundle:Controller:action
    
    TitleRoute:   
        pattern: /myapp/{title}/{propertyId}   
        defaults:
          _controller: FrameworkBundle:Redirect:redirect
          route: GenericRoute
          permanent: true 
    

    【讨论】:

    • 感谢您的帮助 Brig :) 我们需要在 url 中保留属性标题,belga 的解决方案有效。
    猜你喜欢
    • 2014-05-22
    • 2014-03-24
    • 1970-01-01
    • 2013-03-25
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    相关资源
    最近更新 更多