【问题标题】:How to avoid bad SEO duplicated content URLs in Zend Framework如何在 Zend Framework 中避免糟糕的 SEO 重复内容 URL
【发布时间】:2012-01-18 10:13:14
【问题描述】:

我是 Zend Framework 的新手,我正在建立一个网站,希望实施良好的 SEO 实践。

网址结构为:
example.com/language/city/controller/action

所以我在我的引导程序中创建了这条路线:

$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$route = new Zend_Controller_Router_Route(':language/:city/:controller/:action/*',
                                         array('language'=>'es',
                                               'city'=>'barcelona',
                                               'controller'=>'index',
                                               'action'=>'index'));
$router->addRoute('language_city', $route);

我不确定这是否可以,但似乎可以解决问题。

接下来我注意到所有这些 URL 都指向相同的内容(糟糕的 SEO 做法):

/
/es
/es/barcelona
/es/barcelona/index
/es/barcelona/index/index

有没有办法解决这个重复的内容问题?

提前致谢!

【问题讨论】:

    标签: seo duplicates zend-framework


    【解决方案1】:

    您正在设置默认值,因此对于一个页面(默认页面),请求将是相同的。如果您删除了默认值,如果 URI 不包含该变量,您将收到错误消息(我相信是404)。

    $route = new Zend_Controller_Router_Route(
        ':language/:city/:controller/:action/*',
        array('language'=>'es', //default when not in URI
              'city'=>'barcelona', //default when not in URI
              'controller'=>'index', //default when not in URI
              'action'=>'index' //default when not in URI
        )
     );
    

    您似乎想要删除 language city 的默认值,因为如果没有这些数据,我不确定您的控制器会做什么。

    如果你这样做了,唯一的“重复”URI 将是:

    /es/barcelona
    /es/barcelona/index
    /es/barcelona/index/index
    

    您只需使用其中一个 URI。如果您使用 Zend 的 View_Helper_Url 输出链接,它将删除 index/index - 因为它匹配默认值。

    您始终可以添加其他路由以将其他请求(例如 /)映射到相关控制器。

    还应注意,如果您只有一个控制器处理所有这些“城市”请求,则无需将其放在 URI 上

    $route = new Zend_Controller_Router_Route(
        ':language/:city/:action/*',
        array('language'=>'es', //default when not in URI
              'city'=>'barcelona', //default when not in URI
              'controller'=>'index', //all requests route here
              'action'=>'index' //default when not in URI
        )
     );
    

    那么唯一的“重复”URI 是:

    /es/barcelona
    /es/barcelona/index
    

    【讨论】:

    • @XeL 很高兴能提供帮助 - 可能值得看看各种路由器类型。如果您正在执行基本的 CRUD,我发现 REST 路由器很有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 2011-09-07
    • 2014-12-02
    • 2014-09-17
    相关资源
    最近更新 更多