douliang1900 2012-04-09 13:45
浏览 54

在CodeIgniter路由中使用问号

I need to change

http://mysite.com/profile?username=nick

to

http://mysite.com/user/nick

with CodeIgniter routing. I add the following line to routes.php but it doesn't work:

$route['user/(:any)'] = "profile?username=$1";

Here is the .htaccess file that I use:

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
AddDefaultCharset utf-8

How can I solve this problem? Thanks in advance.

EDIT:

I mean URL structure changing. So after the routing it must redirect

http://mysite.com/user/nick

to

http://mysite.com/profile?username=nick
  • 写回答

3条回答 默认 最新

  • duancaozen6066 2012-04-09 13:48
    关注

    The issue most likely is that the ? is a special character in regular expression language meaning either 1 or 0. You will need to escape it for it to match, something like so should solve your issue: $route['user/(:any)'] = "profile\?username=$1";

    评论

报告相同问题?

悬赏问题

  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条