2017-01-16 32 views
2

の機能は間違いなくcodeigniterにありますか?codeigniterのroutes.phpとは何ですか

先生はそれについて教え、あなたがそのような例として、ルートを使用しない場合、あなたの意見は動作しませんと言われた。

$route['blabla'] = ['blabla/blabla'];し、それについてのすべてを!

私にとっては、ルートを使用せずに動作しています。私はなぜルートを使うべきか分からない。それは無駄な時間です。誰でも説明できますか?

答えて

0

CIコードではroutes.phpなしで実行されます。 routes.phpのは、URL /ルートをカスタマイズするために使用されているように、あなたは持っている場合は、URLなどの

example.com/pages/about_us 

ここで、「ページ」あなたのコントローラと「about_usが」あなたは、コントローラなしのURLを表示したい場合は、そのコントローラ方法でありますexample.com/about_usのような、あなたは、ユーザーフレンドリーなURLとSEOフレンドリーなGoogle検索のために使用される主要な機能のCodeIgniterの一つに

$route['about_us'] = ['pages/about_us']; 
0

ルーティングこの方法でのroutes.php使用する必要があります。

それが何を意味する: すべてのユーザーがあなたのウェブサイト内の任意の製品のために検索した場合、URLはこのケースでは今 www.domain.in/categalog/Deskstop-Intel-124343 になりますので、URLはルーティングに維持されているどのようにそれを解釈するユーザーフレンドリーです。

URLはroutesに制御フローをhittedとroutesから

$route['product/(:any)'] = 'catalog/product_lookup'; 

controllerすぐcateglog/product_lookup製品/いずれかの手段として解釈される一方のコントローラの入力としてID /テキストを受け入れるProductがあることであるたびに。

これは、私たちの要件に応じてユーザー定義のURLを作成するのと同じくらい簡単です。

5

codeigniterでは、PHPファイルはブラウザから直接PHPファイルにアクセスするのではなく、別の方法で提供されます。このプロセスはルーティングと呼ばれます。

私たちのコードは、のURLをroutes.phpに書き換えずに動作します。

私たちはすべて、より便利な方法で私たちのWebページを表示したいので、訪問者に(もちろん、検索エンジンにも)理解させることができます。たとえば、ブラウザのアドレスバーにあるURLをチェックするだけで、ページに含まれる内容を簡単に理解する必要があります。それはサーバースクリプト(PHP、Asp.NETなど)によって理解することができるどのような方法であると私たちはこれを維持する場合は、次のようにのように、多くの目標を果たすべきではない:上記のリンクから

http://yourdomain.com?p=1 
http://yourdomain.com?p=2 
http://yourdomain.com?w=30 
http://yourdomain.com?z=234 
//etc...... 

を、それらのページが何であるかを理解する方法はありません。

http://codesamplez.com/database/codeigniter-activerecord 
http://codesamplez.com/programming/regular-expressions-in-php 

これらは、はるかに意味があるが、我々はちょうどURLを見てからの簡単なアイデアを持つことができます。さて、それは次のようにのようなものを何だった場合。また、検索エンジンは以前のURLと比較していくつかの価値があるため、「検索エンジンにやさしいURL」として知られています。だから、あなたが選んだ理由は何でも、常にSEOフレンドリーなURLを使用する方が良いです。さて、私たちはサイトをよりSE /ビジターフレンドリーにし、これらのURLを使いたいと思っています。さて、このURLを元のリクエストハンドラスクリプトにマップするために、アプリケーションをどのように開発する必要がありますか?

URL書き換え/ルーティングは、実際には、このseo friendly URLを、サーバーコードが簡単に理解できる形式に変換し、対応する要求ハンドラスクリプトに要求を駆動する技術です。

CodeIgniterには、ユーザーフレンドリーなURIルーティングシステムがあり、簡単にURLを再ルーティングできます。通常、URL文字列とそれに対応するコントローラクラス/メソッドとの間には1対1の関係があります。

your-domain.com/class/method/id/ 
  • 最初セグメント に呼び出されるべきコントローラクラスを表す - URIにおけるセグメントは、通常、このパターンに従います。
  • 第2のセグメントは、 が呼び出されるべきクラス関数またはメソッドを表します。
  • 3番目のと追加のセグメントは、コントローラに渡されるIDとすべての 変数を表します。

場合によっては、このデフォルトルーティングメカニズムを変更することができます。 CodeIgniterには、独自のルーティングルールを設定できる機能があります。

これらすべてを処理できる特定のファイルがあります。このファイルはapplication/config/routes.phpにあります(既に知っています)。ルーティングルールをカスタマイズできる$ routeという配列があります。 $ルート配列のキーは何をルーティングするかを決定し、値はどこにルーティングするかを決定します。 CodeIgniterには3つの予約済みルートがあります。

$ルート[「default_controller」]

このルートはURIは、人々が自分のルートURLをロードする際にケースになるデータが含まれていない場合、コントローラクラスは、ロードされるべきかを示します。デフォルトルートを使用することをお勧めします。それ以外の場合は、デフォルトで404ページが表示されます。ここにウェブサイトのホームページを設定して、デフォルトでロードされるようにすることができます。

$ルート[「404_override」]

このルートは、要求されたコントローラが見つからない場合は、コントローラクラスをロードするかを示します。デフォルトの404エラーページが上書きされます。これは、[「translate_uri_dashes」]ブール値によって明らかなように

が、これは正確にルートではありません application/views/errors/error_404.php.

$ルートにデフォルトerror_404.phpファイルをロードし続けるであろう、the show_404()機能には影響しません。このオプションを使用すると、ダッシュ( ' - ')をコントローラとメソッドのURIセグメントの下線に自動的に置き換えることができます。これはダッシュが有効なクラスまたはメソッド名の文字ではなく、使用しようとすると致命的なエラーが発生するため必要です。

Watch this video for a basic idea

Refer this documentation too

+0

良い仕事..... – chhameed

+0

@chhameed感謝の男:D – NID

+0

こんにちはビラル、私は思ったんだけどコロンビア大学のCodeIgniterのウェブサイトがあなたの説明を採用していない理由! :-)しかし、私たちがビュー/コントローラの観点から考えている親切な実用的な例で実装してください。したがって、 "ビュー"サブディレクトリは "ビューワン" "ビュー" "ビュー"と "コントローラ" "Viewone" "Viewtwo" "Viewthree"とviewone/two/three内にこれらの対応するページ "viewone/two/three" + "additem" + "deleteitem"と "list"です。私は正しいroutes.phpの設定と原則をキャッチすることはできません。すべてがメインのindex.php内にあるべきか、それとも何ですか?どのように設定するのですか?それを追加してください。 – Robert

関連する問題