重定向URL到SEO友好URL时使用哪个重定向?

时间:2012-11-22 15:00:03

标签: codeigniter redirect seo

我正在使用Codeigniter开发一个网站。

我想将网址重定向到其SEO友好版本。例如。
我有网址

一个。 http://www.example.com/post/[post-id]/

我希望此网址能够直接转换为SEO友好版本

B中。 http://www.example.com/post/[post-id]/[post-title]

就像stackoverflow正在使用一样,并且像将URL重定向到B URL。

http://stackoverflow.com/questions/[question-id]/[question-title]

我在Codeigniter中使用了302重定向,直到我在某处找到,如果你使用的是302重定向。
然后谷歌可能会把你视为垃圾邮件发送者
,但是当我看到Stackoverflow网址模式时,我认为它更好地拥有B版本的URL。

所以我的问题是:
1.使用哪种重定向stackoverflow?
2.将[post-title]的Slug存储在数据库中或使用url_title()函数手动计算它是否更好。

2 个答案:

答案 0 :(得分:2)

302表示临时重定向。结果是搜索引擎仍会索引原始网址。

301表示永久重定向。这导致搜索引擎将索引数据传输到新URL。

302s不是垃圾邮件,但如果在错误的情况下使用,则无法帮助自己。

在您的情况下,您将永久移动您的网址,以便301适当。

答案 1 :(得分:0)

在帖子控制器中为帖子的SEO友好URL创建一个私有函数。

private function _redirect($url) {    // $url = http://www.example.com/post/[post-id]/
  redirect($url . $this->post_title); // becomes http://www.example.com/post/[post-id]/[post-title]
  return;
}

在重定向之前,您应该设置post_title成员变量。无论你在哪里调用redirect()函数,用你的私有函数_redirect()替换它,你就可以了。

默认为302重定向。要执行301重定向,只需将参数添加到redirect()函数。例如

// with 301 redirect
redirect($url . $this->post_title, 'location', 301);

注意:为了使此功能起作用,必须在将任何内容输出到浏览器之前使用它,因为它使用服务器头。