0

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']; 
jsuissa
  • 1,754
  • 6
  • 30
  • 64

1 Answers1

2

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.

hsuk
  • 6,770
  • 13
  • 50
  • 80