【问题标题】:Redirections + CodeIgniter + SEO?重定向 + CodeIgniter + SEO?
【发布时间】:2013-04-21 11:30:10
【问题描述】:

好的,这是我的情况:

  • 我正在重写我的一个基于 WordPress 的旧网站(内容很多),作为一个 Bootstrap、CodeIgniter 支持的网站。
  • 由于该网站已有将近 4 到 5 年的历史,并且已经在搜索结果中占有一席之地,因此我主要关心的一个问题是保持现有网址完好无损。

问题:

  • 虽然我想保留旧的 URL,但它们仍然有点奇怪(与 WP 的所有废话),例如:mysite.com/category/some-category/some-subcategory
  • 我正在考虑更改一般 url 结构,并将旧 url 转发到新 url。

我应该怎么做?哪一种是最适合 SEO 的方式?会有什么缺点吗?

请多多指教,因为我实在是太糊涂了,绝对不想毁掉一个性能已经不错的网站...

【问题讨论】:

    标签: php html wordpress codeigniter seo


    【解决方案1】:

    据我所知,只有 post_name 在 WP 帖子的 uri 中很重要: wp-site.com/category/post_name 等于 wp-site.com/category2/post_name

    因此,当您将 wp-posts 表迁移到新的 CI 帖子表时,请保留 post_name 字段以识别请求的内容。

    我向您提交一个简单的解决方案来保留旧网址:

    例如:您的 olds URI 类似于 /category1/cateogry2/post_name/

    config/route.php

    //old post URIs (WP)
    //$3 = post_name
    $route['([a-z0-9\-_]+)/([a-z0-9\-_]+)/([a-z0-9\-_]+)/'] = 'posts/single/$3'; 
    
    //new post URIs
    //e.g: /post_name.html
    $route['([a-z0-9\-_]+)\.html'] = 'posts/single/$1';
    

    控制器/posts.php

    //posts method
    public function single($post_name) {
        //check post_name in DB
        //...
    
        //check URI (optionnal)
        //there are not one segment in the uri so this is an old URI
        if( $this->uri->total_segments() > 1 ) {
            redirect($post_name.'.html', 301);
        }
    
        //...
    }
    

    通过此解决方案,当您访问http://site.com/category1/cateogry2/post_name/ 时,将调用posts/single 方法并将您重定向到新的URL http://site.com/post_name.html

    【讨论】:

      【解决方案2】:

      我的建议,使用友好的 URL 更改 URL 结构,在这里您可以找到一个很好的备忘单,其中包含一个好的 URL 的解剖结构:http://www.seomoz.org/blog/seo-cheat-sheet-anatomy-of-a-url

      除了前面的点,您还需要保持旧的 URL 结构进行 301 重定向(这很重要,不要使用 302)到新结构。您可以在 .htaccess 文件中执行此操作。更多信息:http://www.seomoz.org/learn-seo/redirection

      【讨论】:

        【解决方案3】:

        小心 SEOMoz 作弊对我不起作用。我的网站通常在谷歌搜索的第二页。在关注 SEOmoz 之后,它把我的网站放到了第 5 页以下。我认识一位 SEO 大师,当我展示我的网站时,他笑着告诉我“不要相信互联网上所说的一切,他们说废话只是为了吸引观众”。他建议我保持网址尽可能短,并在网址中有一个特定的关键字,有类别,子类别,......将制作一个冗长的网址,谷歌将其视为关键字填充。我将我的网址更改为短而甜美的,并且在 3 周内我的网站就出现在了第一页。

        是的 301 重定向最好是上面提到的 m4t1t0。根据谷歌的说法,如果您将网站域名或网址更改为页面,您应该使用 301,通过它您可以保留以前的反向链接和页面排名。

        将此添加到您的 .htaccess 文件中

        Redirect 301 /category/some-category/some-subcategory http://mysite.com/specific-keyword-for-the-product
        

        【讨论】:

        • Codeigniter 不关心 url,你可以拥有任何你想要的 url。你可以有一个冗长的网址。使用路由将它们指向正确的 url 和方法。
        【解决方案4】:

        你可以使用 $slug 变量。使用 $slug 存储 URL 可能会有所帮助。我以前从未尝试过 SEO,但可能会奏效。

        http://ellislab.com/codeigniter/user-guide/tutorial/news_section.html

        好像你可以存储

        xxx.com/category/some-category/some-subcategory/content_title
        

        xxx.com/$slug/content_title
        

        您可能需要使用以前的 URL 编辑 $slug。试试看吧。

        【讨论】:

          猜你喜欢
          • 2013-07-30
          • 1970-01-01
          • 1970-01-01
          • 2011-11-28
          • 1970-01-01
          • 1970-01-01
          • 2015-01-07
          • 2010-11-15
          • 2016-06-21
          相关资源
          最近更新 更多