docomoの場合に guid=on を付けてリダイレクトする設定。

あ、enable_query_strings = false の限定的な設定において、?guid=on を付けたアクセスでもルーティングできるようにしてある場合(独自拡張。前記事参照)に有効な .htaccess です。

RewriteEngine on

RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{HTTP_USER_AGENT} !^DoCoMo
RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo
RewriteRule ^(.*)$ /$1\?guid=on [R=302,L]
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{QUERY_STRING} !guid=on
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo
RewriteRule ^(.*)$ /$1\?guid=on [R=302,L]
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo
RewriteRule ^(.*)$ /index.php/$1 [L]

コンテンツ内であれば、基本的にURIへ guid=on が付加してあるため(という前提)、まぁトップページへのアクセスの際に有用って感じ。

あと、site_urlのコア拡張は
<?php

class MY_Config extends CI_Config {

    public function  __construct() {
        parent::CI_Config();
    }

    public function site_url($uri = ''){

        $uri = parent::site_url($uri);
        if($this->item('enable_query_strings') === false){
            $uri .= '?guid=on';
        }

        return $uri;
    }
}

こんなざっくりしたもので十分そう。