douwendu2460 2013-04-28 04:01
浏览 38
已采纳

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

On the page whose URL is "abc.com/en/login/create_member" using site_url('login') produces a link to "abc.com/en/login/create_member", but the desired URL is "abc.com/en/login/"

I've included the link code and an excerpt from my routes.php file

Thanks in advance for any help on this.

Code:

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

Route Excerpt:

$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条回答 默认 最新

  • doumao1519 2013-04-29 06:40
    关注

    Either you add language on the link like

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

    So, your current expression on your route.php works. i.e.

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

    OR

    Simply, remove $prepended_lang. from your route.php expression like:

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

    This above expression works only when you have a function parameter like

    site_url('login/index') 
    

    where index works as parameter for (:any), so in case your url is site_url('login') only, you have to add:

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

    before the above expression.

    Actually these two expressions are not required on route.php but because of your appended language, these two expressions seems mandatory.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 西门子S7-Graph,S7-300
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改