1

私はMVC、特にCodeigniterを使用しています。

構築しているサービスにサブドメインを作成する必要があります。より「モバイル」なフレンドバージョンのサービスをユーザーに渡すこと。m.example.com経由。通常は、仮想ホストを追加したり、すべてをフォルダーに入れたりするなどですが、このプロジェクトでMVCを使用しているため、ほとんどの機能は、ビューやビューに依存しないモデルとライブラリにあります。それらが持っている出力までのコントローラー。

したがって、私の現在の考え方は、m.exampleとして使用するためだけに、現在使用されているmvcとまったく同じものを持つまったく新しいフォルダーをマシン上に作成することはリソースの無駄になるということです。 com。だから私は疑問に思っています(現在index.phpでこのように機能しているため)m.example.comを介したトラフィックが通過するときに、フォルダーではなく特定のコントローラーパスを使用すると仮定する方法はありますか?道?そのため、その兄貴のindex.php m.php(この例ではコントローラー)と同じように、すべてのコアトラフィックを処理し、モデルやライブラリなどに接続する一連の関数を使用できます。

私が誰かに以下にしたコメントで、私は言いました:

いいえ、m.phpはルートにありません。コントローラーです。m.example.comへのリクエストをm.phpコントローラーにルーティングしようとしています(m.phpはコントローラーディレクトリにあり、MVCパターンに準拠しています) )、MVCロジックに従ってhttp://example.com/m/function/param/にアクセスできますが、http: //m.example.com/function/param/がそれに等しいようにしたいのですがmvcロジックの

つまり、最終的には、.htaccessを使用するか、http://example.com/m/function/param/およびhttp://m.example.com/function/param/を使用してロジックを作成しようとしていることを意味します。これはまったく同じものです。できれば、CIインストール全体とそれに基づいて構築したコードのミラーコピーを作成せずに、mたとえばと呼ばれるディレクトリに配置します。私はこの原因を強調しますが、多少の混乱があるようです。

4

2 に答える 2

2

これを見て、ここに示されているuser_agentライブラリの代わりにHTTP_HOSTを使用するように変更することをお勧めします。

http://digitizor.com/2011/12/05/codeigniter-mobile-browser/

于 2012-10-26T04:38:25.653 に答える
1

すでにコントローラーがあり、同じサーバーを指すm.example.comm.phpのDNSがあり、 m.example.comexample.comの両方で同じドキュメントルートをホストするようにサーバーを設定している場合は、これですべてです。ドキュメントルートのhtaccessファイルに次のものが必要です。

RewriteEngine On

# this condition ensures the request is for m.example.com
RewriteCond %{HTTP_HOST} ^m\.example\.com$ [NC]

# the usual routing conditions (may need to be changed to suit your specific needs)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# you can alternatively use this
# RewriteCond %{REQUEST_URI} !^/m.php

# route
RewriteRule ^(.*)$ /m.php [L]

# or
# RewriteRule ^(.*)$ /m.php/$1 [L]
# RewriteRule ^(.*)$ /m.php?url=$1 [L,QSA]

これは、メインサイトのルーティングを処理するルールを超える必要があります。

于 2012-10-26T04:34:13.983 に答える