0

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

我已经包含了链接代码和我的 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']; 
4

1 回答 1

2

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

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

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

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

或者

简单地说,$prepended_lang.从您的 route.php 表达式中删除,例如:

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

上面的表达式仅在您具有类似的函数参数时才有效

site_url('login/index') 

其中 index 作为参数工作(:any),所以如果你的 url 是site_url('login')唯一的,你必须添加:

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

在上述表达式之前。

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

于 2013-04-29T06:40:36.430 回答