我正在开发之前创建的Codeigniter项目。我遇到了这个功能:
public function change_language()
{
$string_value = $this->input->post('lang_code');
$rows = $this->Common_model->getTableData('language', array('code' => $string_value))->row();
$this->session->set_userdata('language',$rows->name);
$this->session->set_userdata('locale',$string_value);
}
数据库:
----------------------------------------
id | code | name | img_path
----------------------------------------
1 | en | English| images/en.png
2 | ru | Russian| images/ru.png
该功能正常工作并加载语言文件的内容。网站正在翻译,所有en / ru的URL保持不变。因为没有,如果非默认页面没有被Google索引。我怎样才能添加' ru'和' ru'在域名之后?
途径:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| URI ROUTING
| -------------------------------------------------------------------------
| This file lets you re-map URI requests to specific controller functions.
|
| Typically there is a one-to-one relationship between a URL string
| and its corresponding controller class/method. The segments in a
| URL normally follow this pattern:
|
| example.com/class/method/id/
|
| In some instances, however, you may want to remap this relationship
| so that a different class/function is called than the one
| corresponding to the URL.
|
| Please see the user guide for complete details:
|
| http://codeigniter.com/user_guide/general/routing.html
|
| -------------------------------------------------------------------------
| RESERVED ROUTES
| -------------------------------------------------------------------------
|
| There area two reserved routes:
|
| $route['default_controller'] = 'welcome';
|
| This route indicates which controller class should be loaded if the
| URI contains no data. In the above example, the "welcome" class
| would be loaded.
|
| $route['404_override'] = 'errors/page_missing';
|
| This route will tell the Router what URI segments to use if those provided
| in the URL cannot be matched to a valid route.
|
*/
$route['default_controller'] = "home";
$route['search'] = "search/index";
$route['rooms/(:num)'] = "rooms/index/$1";
$route['rooms/(:num)/preview'] = "rooms/index/$1/preview";
$route['rooms/new'] = "rooms/newlist";
$route['tell_a_friend'] = "referrals/tell_a_friend";
$route['users/profile/(:num)'] = "users/vouch";
$route['404_override'] = '';
$route['hosting'] = 'listings';
// Ilan route
$group_langs = 'en|ru';
$route["($group_langs)"] = $route['default_controller'];
$route["($group_langs)/(:any)$"] = "$2";
$route["contact"] = "pages/contact";
$route["contact/(:any)"] = "pages/contact/$1";
$route["amazing-czech-republic"] = "amazing_czech_republic";
$route["news/prague_news/(:any)"] = "/news/prague_news/$1";
$route['administrator'] = 'administrator/backend';
$route['administrator/login'] = 'administrator/auth/login';
$route['administrator/admin_key/viewAdmin_key/(:any)'] = 'info';
$route['administrator/backend/(:any)'] = 'info';
$route['administrator/settings/lang_front/(:any)'] = 'info';
$route['administrator/settings/lang_back/(:any)'] = 'info';
$route['administrator/settings/home_meta_settings/(:any)'] = 'info';
$route['administrator/settings/change_password/(:any)'] = 'info';
$route['administrator/settings/how_it_works/(:any)'] = 'info';
$route['administrator/email/settings/(:any)'] = 'info';
$route['administrator/email/mass_email/(:any)'] = 'info';
$route['administrator/members/add/(:any)'] = 'info';
$route['administrator/members/changepassword/(:num)/(:any)'] = 'info';
$route['administrator/members/edit/(:num)/(:any)'] = 'info';
$route['administrator/lists/addlist/(:num)'] = 'administrator/lists/managelist/(:num)';
$route['administrator/lists/managelist/(:num)/(:any)'] = 'info';
$route['administrator/lists/view_aminity/(:any)'] = 'info';
$route['administrator/lists/view_all/(:any)'] = 'info';
$route['administrator/property_type/view_property/(:any)'] = 'info';
$route['administrator/property_type/view_all_property/(:any)'] = 'info';
$route['administrator/neighbourhoods/addcity/(:any)'] = 'info';
$route['administrator/neighbourhoods/viewcity/(:any)'] = 'info';
$route['administrator/neighbourhoods/addcity_place/(:any)'] = 'info';
$route['administrator/neighbourhoods/viewcity_place/(:any)'] = 'info';
$route['administrator/neighbourhoods/editcity_place/(:num)/(:any)'] = 'info';
$route['administrator/neighbourhoods/editcity/(:num)/(:any)'] = 'info';
$route['administrator/neighbourhoods/addcategory/(:any)'] = 'info';
$route['administrator/neighbourhoods/viewcategory/(:any)'] = 'info';
$route['administrator/neighbourhoods/editcategory/(:num)/(:any)'] = 'info';
$route['administrator/neighbourhoods/addpost/(:any)'] = 'info';
$route['administrator/neighbourhoods/viewpost/(:any)'] = 'info';
$route['administrator/neighbourhoods/editpost/(:num)/(:any)'] = 'info';
$route['administrator/neighbourhoods/addphotographer/(:any)'] = 'info';
$route['administrator/neighbourhoods/viewphotographer/(:any)'] = 'info';
$route['administrator/neighbourhoods/editphotographer/(:num)/(:any)'] = 'info';
$route['administrator/neighbourhoods/addtag/(:any)'] = 'info';
$route['administrator/neighbourhoods/viewtag/(:any)'] = 'info';
$route['administrator/neighbourhoods/edittag/(:num)/(:any)'] = 'info';
$route['administrator/neighbourhoods/addknowledge/(:any)'] = 'info';
$route['administrator/neighbourhoods/viewknowledge/(:any)'] = 'info';
$route['administrator/neighbourhoods/editknowledge/(:num)/(:any)'] = 'info';
$route['administrator/payment/finance/(:num)/(:any)'] = 'info';
$route['administrator/payment/details/(:num)/(:any)'] = 'info';
$route['administrator/payment/manage_gateway/(:num)/(:any)'] = 'info';
$route['administrator/payment/paymode/(:num)/(:any)'] = 'info';
$route['administrator/social/fb_settings/(:any)'] = 'info';
$route['administrator/social/twitter_settings/(:any)'] = 'info';
$route['administrator/social/google_settings/(:any)'] = 'info';
$route['administrator/managemetas/editmetas/(:num)/(:any)'] = 'info';
$route['administrator/page/viewPages/(:any)'] = 'info';
$route['administrator/page/addPage/(:any)'] = 'info';
$route['administrator/page/editPage/(:num)/(:any)'] = 'info';
$route['administrator/coupon/add_coupon/(:any)'] = 'info';
$route['administrator/coupon/view_all_coupon/(:any)'] = 'info';
$route['administrator/coupon/edit_coupon/(:num)/(:any)'] = 'info';
$route['administrator/help/viewhelp/(:any)'] = 'info';
$route['administrator/help/addhelp/(:any)'] = 'info';
$route['administrator/help/edithelp/(:num)/(:any)'] = 'info';
$route['administrator/faq/viewFaqs/(:any)'] = 'info';
$route['administrator/faq/editfaq/(:num)/(:any)'] = 'info';
$route['administrator/faq/addFaq/(:any)'] = 'info';
$route['administrator/contact/(:any)'] = 'info';
$route['administrator/joinus/viewJoinus/(:any)'] = 'info';
$route['administrator/cancellation/viewcancellation/(:any)'] = 'info';
$route['administrator/cancellation/editCancellation/(:num)/(:any)'] = 'info';
// Include cache routes-mark
/* End of file routes.php */
/* Location: ./application/config/routes.php */
require_once APPPATH . 'cache/routes.php';
答案 0 :(得分:0)
您想设置example.com/en/controller
,example.com/ru/controller
?通常不是最佳做法,但这会有所帮助:Building a multi-language navigation menu in CodeIgniter
对我的一个项目有用的是向页面添加?hl=ru
参数。
链接将这些引用为<link href="https://example.com/controller?hl=ru" hreflang="ru" rel="alternate">
。这使得多语言网站的链接变得干净,对搜索引擎优化来说是最好的,并且在CI中设置起来更容易。