Эти ответы не дают достаточной информации, и принятый ответ просто ужасен ...
Лучший способ справиться с этим - настроить маршрутизацию на выполнение следующих действий (если вы хотитеконтролируйте страны, которые могут использовать пользователи:
поместите это в свой файл маршрутов:
foreach(array('country1', 'country2') as $country) { // array with allowed countries
$routes[$country.'/(:any)'] = "country/view/{$country}/$1";
$routes[$country] = "country/view/{$country}";
}
то, что это делает, берет ваш массив разрешенных стран и затем создает правило маршрутизации длякаждая страна, поэтому, если пользователь переходит на http://example.com/japan/naruto
, он направляет на URL http://example.com/country/view/japan/naruto
. Это предполагает, что «japan» находится в вашем массиве «позволенных стран».
Второй просто маршрутизируетurl http://example.com/japan
to http://example.com/country/view/japan
в ваш контроллер country.php
:
class Country extends CI_Controller {
function view($country, $username = false) { // $username=false allows you to show just a 'country' page if you want to
if ($username) {
$this->load->view('users_view', array('country' => $country, 'username' => $username));
} else {
$this->load->view('countries_view', array('country' => $country))
}
}
}
то, что я здесь сделал, позволило вам создать страницу только для отображаемой страны, котораязагружает countries_view.php
из папки представлений, или вы можете просмотреть страницу для пользователя, которая загружает страницу users_view.php
.