0

私の質問は、codeigniter URL に国名を追加する方法ですか?

私のウェブサイトがhttp://mywebsite.comで、カナダからウェブサイトを開いているので、私の URL はhttp://mywebsite.com/canadaである必要があります。つまり、URLに国名を追加したいだけで、これ以外は何も変わりません。codeigniter のルートについて読んだことがありますが、グーグルで検索しましたが、すべて無駄でした。

誰かがこれを行う方法の手がかりを持っている場合は、私に知らせてください。

4

2 に答える 2

0

リクエストの IP アドレス ($_SERVER['REMOTE_ADDR']) に基づいて国を推測するために、IP ルックアップでそれを行うと思います。IP アドレスを場所にマッピングする方法は、かなり詳しく文書化されています。国を取得したら、正しいコントローラー メソッドにリダイレクトします。

それはあなたが探しているものですか?

于 2013-04-22T00:02:26.627 に答える
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 の国を考慮せずにコードをルーティングのようにします。

于 2013-04-22T00:21:02.707 に答える