笨路由问题(Codeigniter routing issues)

2019-07-29 00:14发布

我定制我的航线笨,这是我的routes.php文件的样本:

$route['default_controller'] = 'maincontroller/main';                                                                                                                                                                                    
$route['404_override'] = '';     

$route['test'] = 'maincontroller/test';

这里是maincontroller类:

class Maincontroller extends CI_Controller  
{                 
    public function __construct( )
    {
        parent::__construct( ); 
        $this->load->library('session');  
        $this->init( ); 
    }


    public function main( )         
    {       
        echo "in main";
    } 

    public function test( )
    {
        echo "test";
    }
}

但是当我在我的浏览器访问这个网址:/测试,我得到的服务器的404页没有发现错误。

我不知道什么即时做错了,我也跟着在CodeIgniter用户指南路线指南。

Answer 1:

而不是去/测试,尝试将/index.php/test

默认情况下笨贯穿的index.php一切。

您可以通过添加一个.htaccess文件到网站根目录更改此行为。

这是直接从CodeIgniter用户指南拍摄。

https://ellislab.com/codeigniter/user-guide/general/urls.html

该htaccess文件

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

如果你这样做,你还需要改变你的config / config.php文件

$config['index_page'] = 'index.php';

将其更改为

$config['index_page'] = '';

当你想创建一个页面(视图)链接,您可以使用内置的SITE_URL()函数,你可能需要加载的URL帮手这一点。

例如

<?php echo site_url('test'); ?>

这将考虑到$配置[“index_page”]设置,并为您的链接正确的网址。



Answer 2:

如果你正在尝试运行您的网站从本地主机使用下面的代码..添加.htaccess文件到网站根目录文件夹(比如:mysite的)。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /root folder/index.php/$1 [L]

托管在远程主机服务器上的网站,使用此代码

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]


文章来源: Codeigniter routing issues