我怎样才能修复codeigniter 3的路由?

时间:2016-09-01 23:53:31

标签: php .htaccess codeigniter routes codeigniter-3

它无效的东西,我在我的routes.php文件中有这个

$route['default_controller'] = 'books';
$route['404_override'] = '';
$route['translate_uri_dashes'] = TRUE;


$route['cities']['get'] = 'cities/index';
$route['cities/(:num)']['get'] = 'cities/find/$1';
$route['cities']['post'] = 'cities/index';
$route['cities/(:num)']['put'] = 'cities/index/$1';
$route['cities/(:num)']['delete'] = 'cities/index/$1';

和我的.htaccess一样

Options FollowSymLinks
<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]

</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>

这里的问题是,当我去googleChrome并输入这样的网址:.... www.domain.com.mx/project-server /

它将我发送给默认控制器,它是书籍,或欢迎,或任何地方。 但是当我想在我的网址上输入这样的

... www.domain.com.mx/project-server/books 它看起来像这样的错误: 在此服务器上找不到请求的URL / project-server / cities。

这是我在github的项目 https://github.com/cmurra/project-server

2 个答案:

答案 0 :(得分:0)

将您的htaccess更改为此

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /<YOUR_ROOT_FOLDER>
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php/$l [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|images|robots\.txt|css)
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 / index.php
</IfModule>

修改

为了澄清,我认为问题是codeigniter正在寻找index.php

www.domain.com.mx/project-server/index.php/books

www.domain.com.mx/index.php/project-server/books

这是其中之一

答案 1 :(得分:0)

您也可以查看配置 $route['translate_uri_dashes'] = TRUE;尝试将其设为FALSE(您的网址domain.com.mx/project-server/books https://www.codeigniter.com/userguide3/general/routing.html