Welcome Guest, Not a member yet? Register   Sign In
Need help with routes
#1

[eluser]a.j.[/eluser]
Hi, I'm using i18n Multi-language Library Helper for my multilanguage site.

In routes.php I have:

Code:
$route['default_controller'] = "main";
$route['scaffolding_trigger'] = "";

$route['^(\w{2})/(.*)$'] = '$2';
$route['^(\w{2})$'] = 'main/news';

//it's for default language
$route['news'] = 'main/function_name';
$route['news/(:any)'] = 'main/showNewsSingleByUri/$1/';

//it's for english
$route['en/news'] = 'main/news';
$route['en/news/(:any)'] = 'main/showNewsSingleByUri_En/$1/'; //<---this route is not working: 404 Page Not Found

1. http://sitename/en/news/news-name
How to make this url work properly?

2. How to redirect incorrect urls to main/index?
e.g. http://sitename/incorrectstring redirect to http://sitename/news
http://sitename/en/incorrectstring redirect to http://sitename/en/news


Thanks in advance
#2

[eluser]a.j.[/eluser]
anybody? Smile
#3

[eluser]deczo[/eluser]
The problem is that you reroute urls only once so 'en/news/anything' becomes 'news/anything' according to
Code:
$route['^(\w{2})/(.*)$'] = '$2';
$route['^(\w{2})$'] = 'main/news';
which cannot be served as you don't have such controller/method.

I'm not familiar with internationalization library, but I'am pretty sure it provides a controller serving language segments that are removed from the uri with the above rules, so you can't use own rules like those:
Code:
//it's for english
$route['en/news'] = 'main/news';
$route['en/news/(:any)'] = 'main/showNewsSingleByUri_En/$1/'; //<---this route is not working: 404 Page Not Found

Show your main controller code so I can make this out.
#4

[eluser]a.j.[/eluser]
Thanks for your respond. Here is my controller:

Code:
function index()
    {
       $this->news();
    }

    function about()
    {
      $data['text'] = $this->web_model->get_about();
      $data['left_menu_bar'] =     $this->load->view('bars/left-menu-bar', $data, true);
      $data['content_bar'] =     $this->load->view('about_en', $data, true);
      $this->load->view('template', $data);
    }

    function goals()
    {
      $data['text'] = $this->web_model->get_goals();
      $data['left_menu_bar'] =     $this->load->view('bars/left-menu-bar', $data, true);
      $data['content_bar'] =     $this->load->view('goals_en', $data, true);
      $this->load->view('template', $data);
    }

    function news()
    {
      $data['news'] = $this->web_model->get_news();
      $data['left_menu_bar'] =     $this->load->view('bars/left-menu-bar', $data, true);
      $data['content_bar'] =     $this->load->view('news_en', $data, true);
      $this->load->view('template', $data);
    }


So, how to redirect to index if user types wrong url? e.g. www.sitename.com/newsss




Theme © iAndrew 2016 - Forum software by © MyBB