私の意見では、あなたがしようとしているのはちょっとばかだが、私の言うところではないと思う。ここで
は限り私はそれを見るようにあなたのオプションは次のとおりです。
mod_rewriteを使用して、特定のコントローラに特定のサブドメインへのコールをリダイレクトするために、あなたのApacheの設定や.htaccessファイルを変更します(たとえば
私は)これをテストしていません:右方向に少なくともポイントあなた、私が考えなければならない
RewriteEngine on
RewriteCond %{HTTP_HOST} ^blog.example.com$
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt)
RewriteRule ^(.*)$ /index.php/blog/$1 [L]
を。もちろん、これはあなたのサブドメインが同じIPアドレスを指していることを前提としており、apache仮想ホストはそのサブドメインをあなたの通常のドメインと同じディレクトリに向けるように設定されています。
また、すべてのリンクをサブドメインに指定し、コントローラを省略する必要があります。したがって、通常URLがhttp://www.example.com/blog/cat/awesomeの場合、リンクポイントはhttp://cart.example.com/cat/awesomeにする必要があります。だから、site_url('cart/cat/awesome')
のような素敵なヘルパー機能をもう使用することはできません。それは私のためには大変なものになるでしょう。
私はそれが理にかなっていると思います。詳細については、適切なappディレクトリに
複数のアプリケーションをサポートするために、セットアップあなたのCIインスタンスとだけサブドメインのポイントを持っているが
:http://codeigniter.com/wiki/Multiple_Applications/
ルートクラスにいくつかのクレイジーなものを行う:
routes.php設定ファイル:
if(preg_match('/^blog/',$_SERVER['HTTP_HOST'])) {
$route['(:any)/(:any)/(:any)/(:any)'] = 'blog/$1/$2/$3/$4';
$route['(:any)/(:any)/(:any)'] = 'blog/$1/$2/$3';
$route['(:any)/(:any)'] = 'blog/$1/$2';
$route['(:any)'] = 'blog/$1';
$route['blog'] = 'blog/index';
}
ページに4つ以上のURIパーツが必要な場合は、ルートルールの上部に別の行を追加してください。私はこれがうまくいくかどうかは知りませんが...私は間違いなくそれ以上の仕事の可能性を最小限に抑えることができるショットを与えるだろう。
たとえば、サイトに2つのセクションがあり、1つがショッピングカートで、もう1つがブログであるとします。買い物カゴセクションのすべての機能はcart.phpコントローラによって制御され、他の機能はblog.phpコントローラによって制御されます。また、ユーザーがmysite.comにアクセスしたときにカートをデフォルトのコントローラにして、ブログを訪問したときに、そのURLがblog.mysite.comとして表示されるようにしたい。それが要件です。 – redGREENblue