CodeIgniter路由出现问题,导致404错误

时间:2013-06-24 21:03:55

标签: php codeigniter codeigniter-routing

我正在尝试为我的CodeIgniter网站创建自定义路由。即使是最基本的路线也行不通。例如,我将欢迎控制器映射到“test”,它就是404。我在运行mod_rewrite的MAMP上运行。

我在config.php中有index.php行为空..

$config['index_page'] = '';

这是我的.htacess文件..

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

这是我的路线..

$route['welcome'] = 'test';

3 个答案:

答案 0 :(得分:0)

如果我读得正确,那条路线会尝试将控制器'welcome'重定向到控制器'test'。如果您有一个名为'test'的控制器和一个名为'index'的函数,您可以路由以下内容:

route['welcome/index'] = 'test/index';

这是你想要做的吗?

答案 1 :(得分:0)

一些事情:

  1. CI中的路由是级联的,它们是从上到下进行评估的,路由器在第一次匹配时停止。然后,确保将任何自定义路由放在下面的vanilla发行版中的2条默认路由中:

    $route['default_controller'] = "welcome";
    $route['404_override'] = '';
    // custom routes here
    $route['welcome'] = "welcome/test";
    
  2. 如果您有一个名为“welcome”的控制器(默认值),并且您想要调用名为“test”的方法,则需要一个类似

    的路径
    $route['welcome'] = "welcome/test"
    

    可在网址http://wwww.yourdomain.com/welcome访问 (如果没有指定路由,您可以像http://www.yourdomain.com/welcome/test

  3. 那样访问它

    通常,控制器有一个索引方法,当没有提供其他方法时会自动调用该方法。您到目前为止创建的路由无法正常工作,因为它正在调用“测试”控制器的index()方法,这可能不存在。

    建议:如果您将“欢迎”控制器作为默认控制器,并且您想要调用类似http://www.yourdomain.com/test的网址 您需要test()方法,并且您的路线必须

    $route['test'] = "welcome/test";
    

答案 2 :(得分:0)

  

在路线中,数组包含要匹配的 URI ,而   数组包含应重新路由到的目标

- CI Documentation

您的物理控制器名称为welcome。因此,如果您希望第一个细分中包含单词test的网址重新映射到welcome类,则应执行以下操作:

$route['test'] = "welcome/METHOD";

其中METHODwelcome类的方法。

注意:如果类/方法为welcome/index,则无需附加/index

相关问题