使用正斜杠的Codeigniter路由

时间:2011-04-03 20:22:51

标签: php codeigniter routing

Codeigniter路由规则似乎没有为我删除任何东西 - 这是默认行为 - 我该如何防止它?

示例:

在routes.php中:

$route['blog/read-post/(.+)'] = 'blog/lookup_blog_alias/$1';

在控制器中:

function lookup_blog_alias($str){
print $str;
}

如果我输入的网址如:

http://localhost/blog/read-post/a-b-c/12

当我想要的是“a-b-c / 12”时,我只得到“a-b-c”部分。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

不,默认情况下,您的要求仅在您更改路线网址&amp ;;控制器方法是这样的: -

$route['blog/read-post/(.+)/(.+)'] = 'blog/lookup_blog_alias/$1/$2';

// Controller Method
function lookup_blog_alias($str1, $str2){
  print $str1.'/'.$str2;
}

您需要遵循CodeIgniter User Guide的基础知识,其中它表示CI的约定是使用字符“/”(正斜杠)标记字符串限制。它只是意味着在两个正斜杠之间,可以/可以在一般MVC Framework中考虑以下事项: -

  • 模块名称
  • 控制器(类)名称
  • 控制器方法名称
  • (1st)查询字符串的索引
  • (1st)查询字符串的值
  • (2nd)查询字符串的索引
  • (2nd)查询字符串的值
  • ...(查询字符串的索引/值对)

但是,在CodeIgniter的“routes.php”页面中,可以通过HTAccess改变逻辑。上述概念仍然是直的和所以遵循正常的MVC架构是明智的。

希望它有所帮助。