2011-02-27 158 views
0

我目前的发展是使用CodeIgniter,当我尝试传递一些参数到我的主控制器的索引函数时,它返回我404 errorCodeIgniter路由问题与控制器的索引功能

http://localhost/gis/1 -> 404 ERROR 
http://localhost/gis/home/1 -> 404 ERROR 

其实我route.php文件中有这样的路线:

$route['default_controller'] = "home";  

$route['home/([:num])'] = 'home/index/$1'; 

.htaccess文件是这样的(从this post带走的index.php从CI网址):

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    RewriteCond %{REQUEST_URI} ^system.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 

    RewriteCond %{REQUEST_URI} ^application.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 

    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
    # If we don't have mod_rewrite installed, all 404's 
    # can be sent to index.php, and everything works as normal. 
    # Submitted by: ElliotHaughin 

    ErrorDocument 404 /index.php 
</IfModule> 

而我的config.php档案:

$config['base_url'] = "http://localhost/gis"; 

$config['index_page'] = ""; 

我在做什么错?谢谢!

+0

“routes.php”中的默认控制器是什么? – Sarfraz 2011-02-27 11:23:49

+0

@Sarfraz我编辑我自己的问题 – 2011-02-27 11:30:54

回答

2

更新:

报价OP:

的.htaccess无罪。问题 是我的路线需要是 $ route ['home /(:num)'] = ...我加了 括号和所有作品。


不是:

$route['home/([:num])'] = 'home/index/$1'; 

尝试指定这样的:

$route['home/:num'] = 'home/index/$1'; 

还要确保从application/config/routes.php,默认控制器设置为home

$route['default_controller'] = 'home'; 
+0

感谢您的快速回答。我试过你说的话,但它对我没有用。如果我尝试在我的主控制器索引功能中打印参数,请始终打印'$ 1'。你可以帮我吗? – 2011-02-27 11:32:46

+0

@Fran维罗纳:尝试禁用.htaccess文件来检查它是否有问题。 – Sarfraz 2011-02-27 11:35:42

+0

htaccess无罪。问题是我的路线需要$ route ['home /(:num)'] = ...我添加了括号和所有作品。你可以编辑自己的答案来添加这个?非常感谢Sarfraz。 – 2011-02-27 11:39:16