我正在使用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 =>21
和gender => female
?
答案 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中已经存在架构。