2010-12-30 17 views
3

URIルーティングとビューのマニュアルを読みましたが、何かが私と一緒にクリックされていません。CodeIgniterサブフォルダとURIルーティング

私のビューフォルダには、製品というサブフォルダがあります。 product_viewというファイルがあります。私のコントローラでは、私が持っている:

function index() { 
      $data['title'] = 'Product Overview'; 
      $data['main_content'] = 'products/product_view'; 
      $this->load->view('templates/main.php', $data); 
     } 

テンプレートは、ヘッダビュー、フッターのビューとナビゲーションビュー、プラスメインコンテンツ変数としてビューをロードします。私のURIルーティングで

、私が持っている:私はdomain.com/products/product-overviewに行くしようとすると、

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
/* 
| ------------------------------------------------------------------------- 
| URI ROUTING 
| ------------------------------------------------------------------------- 
| This file lets you re-map URI requests to specific controller functions. 
| 
| Typically there is a one-to-one relationship between a URL string 
| and its corresponding controller class/method. The segments in a 
| URL normally follow this pattern: 
| 
| example.com/class/method/id/ 
| 
| In some instances, however, you may want to remap this relationship 
| so that a different class/function is called than the one 
| corresponding to the URL. 
| 
| Please see the user guide for complete details: 
| 
| http://codeigniter.com/user_guide/general/routing.html 
| 
| ------------------------------------------------------------------------- 
| RESERVED ROUTES 
| ------------------------------------------------------------------------- 
| 
| There are two reserved routes: 
| 
| $route['default_controller'] = 'welcome'; 
| 
| This route indicates which controller class should be loaded if the 
| URI contains no data. In the above example, the "welcome" class 
| would be loaded. 
| 
| $route['scaffolding_trigger'] = 'scaffolding'; 
| 
| This route lets you set a "secret" word that will trigger the 
| scaffolding feature for added security. Note: Scaffolding must be 
| enabled in the controller in which you intend to use it. The reserved 
| routes must come before any wildcard or regular expression routes. 
| 
*/ 

$route['default_controller'] = "index_controller"; 
$route['laser-configurator'] = "configurator"; 
$route['news-and-events'] = "news"; 
$route['products/product-overview'] = "products/product_view"; 
$route['scaffolding_trigger'] = ""; 


/* End of file routes.php */ 
/* Location: ./system/application/config/routes.php */ 

これは、404エラーが発生します。 .htaccessで何かする必要がありますか?もしそうなら、何?ここに私の.htaccessは次のとおりです。

Options +FollowSymLinks 
Options -Indexes 
DirectoryIndex index.php 
RewriteEngine on 
RewriteCond $1 !^(index\.php|resources|images|css|js|robots\.txt|favicon\.ico) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 

ドキュメントはこれに対処する方法についての具体的ではないと私は、いくつかの特定の助けをいただければと思います。私はフォーラムで少しの検索をして、何も見なかったが、私は見ている間これを投稿している。

+0

ルートファイルの内容をすべて投稿できますか? – Alpesh

+0

上記を参照してください – sehummel

答えて

1

は、あなたのコントローラは拡張子がthis postでの話ルータは、私は機会にそれを使用している使用のためのマルチレベルのディレクトリ構造を使用するには、それが作業を保証することが可能でなければなりません。

+0

私はそれをアップロードして行きますか、何とかそれを呼び出す必要はありますか? – sehummel

+0

投稿の指示に従って正しく名前を付けていれば、アップロードして行くことができるはずです。 – jondavidjohn

+0

umm ...あなたは正しい答えとして別の答えをマークしたことを知っていますか? – jondavidjohn

2

CIのURIは、コントローラ名とコントローラ内のメソッド名によってルーティングされます。

コントローラの名前が "products.php"の場合、対応するビューの機能は "index"と呼ばれ、そのページの正しいURIは "/ products"です。

だからあなたのコードは

$route['products/product-overview'] = 'products/index'; 
+0

これに従うとコントローラとビューにサブフォルダを使用するにはどうすればよいですか? – sehummel

関連する問題