在Codeigniter site_url中删除不需要的URL段

时间:2013-04-28 04:01:51

标签: php codeigniter codeigniter-2 codeigniter-routing

在使用site_url('login')的网址为“abc.com/en/login/create_member”的网页上,会生成指向“abc.com/en/login/create_member”的链接,但所需的网址为“abc”的.com / EN /登录/“

我已经包含了我的routes.php文件中的链接代码和摘录

提前感谢您提供任何帮助。

代码:

<a class="link_grad_button" href="<?php site_url('login'); ?>">Login</a></div>

路线摘录:

$route[$prepended_lang.'login/(:any)'] = 'login/$1';
// URI like '/en/about' -> use controller 'about'
$route['^(en|br)/(.+)$'] = "$2";
$route['default_controller'] = 'landing';
// '/en', '/de', '/fr' and '/nl' URIs -> use default controller
$route['^(en|br)$'] = $route['default_controller']; 

1 个答案:

答案 0 :(得分:2)

您可以在链接上添加语言,例如

<a class="link_grad_button" href="<?php site_url('en/login'); ?>">Login</a></div>

因此,您在route.php上的当前表达式有效。即。

$route[$prepended_lang.'login/(:any)'] = 'login/$1';

只需从route.php表达式中删除$prepended_lang.,如:

$route['login/(:any)'] = 'login/$1';

只有当你有一个像

这样的函数参数时,上面的表达式才有效
site_url('login/index') 

其中index用作(:any)的参数,因此,如果您的网址仅为site_url('login'),则必须添加:

$route['login'] = 'login';

在上面的表达之前。

实际上这两个表达式在route.php上不是必需的,但由于你的附加语言,这两个表达式似乎是强制性的。