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 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题