codeigniter url中的国家名称

时间:2013-04-21 23:23:06

标签: codeigniter codeigniter-url

我的问题是如何在codeigniter网址中附加国家/地区名称?

让我说我的网站是http://mywebsite.com,我正在加拿大开设网站,所以我的网址应该是http://mywebsite.com/canada。 意思是我只想在国家/地区名称中添加国家/地区名称,除此之外没有任何变化。我已经阅读过关于codeigniter的路线,我用谷歌搜索了但都是徒劳的。

如果有人知道怎么做,请告诉我。

2 个答案:

答案 0 :(得分:0)

我猜你会通过IP查找来根据请求IP地址猜测国家/地区($ _SERVER ['REMOTE_ADDR'])。将IP地址映射到某个位置pretty well documented.一旦您拥有该国家/地区,请重定向到正确的控制器方法。

那你在寻找什么?

答案 1 :(得分:0)

这与url中的语言代码类似。

使用我的解决方案,您可以在您的uri中放置任何段并将其隐藏到CI。

http://site.com/page.html将等于http://site.com/canada/page.html,反之亦然。

set_country_uri.php

//App location
$ci_directory = '/ci/';

//countries
$countries = array('canada','france');

//default country
$country = 'canada';

foreach( $countries as $c )
{
    if(strpos($_SERVER['REQUEST_URI'], $ci_directory.$c)===0)
    {
        //Store country founded
        $country = $c;

        //Delete country from URI, codeigniter will don't know is exists !
        $_SERVER['REQUEST_URI'] = substr_replace($_SERVER['REQUEST_URI'], '', strpos($_SERVER['REQUEST_URI'], '/'.$c)+1, strlen($c)+1);

        break;
    }
}

//Add the country in URI, for site_url() function
$assign_to_config['index_page'] = $country."/";

//store country founded, to be able access it in your app
define('COUNTRY', $country);

的index.php

<?php

require('set_country_uri.php');

//ci code ...

因此,在CI代码中使用COUNTRY常量来了解所使用的内容。并使您的代码像路由一样,而不考虑uri中的国家。