缩短包含查询字符串的URL

时间:2011-07-05 04:54:55

标签: php javascript jquery mysql codeigniter

我正在使用Codeigniter(PHP Framework),我有http://www.mysite.com/age/21/gender/female/name/jamie/city/boston/userid/1234之类的网址。

是否可以使URL更具SEO /用户友好性?与http://www.mysite.com/1234-Jamie-Boston一样,并且仍然能够传递原始网址字符串中找到的值,例如age =>21gender => female

2 个答案:

答案 0 :(得分:3)

我认为您可以 - 使用mod_rewrite将您的新网址从http://www.mysite.com/1234-Jamie-Boston重写为http://www.mysite.com/user/1234。在您的用户控制器中从db加载ID为1234的那个并设置其所有其他属性

或者没有mod_rewrite - 您可以使用以下条目修改application/config/routes.php文件:

$route['(\d+)-.*'] = "users/display_user/$1";

这样你的SEO友好网址将指向类用户,方法display_users,你将获得id作为参数

答案 1 :(得分:2)

PHP的工作方式是,如果你向一个只需要两个的函数发送15个参数,那么PHP可以或多或少地“吞下”其他参数(它们仍然是可访问的,但它们不是可选的)。在你的情况下,我会创建一个Users控制器,可能带有一个显示功能,只需要一个参数,即用户ID。这样,您可以/users/display/1234/whatever/you/would/like/zodiac_sign/stop_sign/favorite_letter/favorite%20punctuation/...我需要继续吗?

您可以使用$ routes配置文件来解决控制器/方法作为URL的一部分的需求......在这种情况下,我认为user/display不会真正损害SEO。我不会使用mod_rewrite这样做只是因为CodeIgniter中已经存在架构。