【问题标题】:Routes not working codeigniter路由不起作用codeigniter
【发布时间】:2018-06-27 05:55:35
【问题描述】:

当我将 Welcome 设置为默认控制器时,路由不工作并且默认控制器显示错误 404,然后使用 Welcome 控制器定义的所有路由都可以正常工作,但我的其他路由和 url 不工作。

$route['default_controller'] = "welcome";
$route['testRoute'] = 'welcome/test';
$route['testRoute/(:num)'] = 'welcome/test/$i';

以上所有路由都只适用于欢迎控制器。

$route['default_controller'] = "login";
$route['loginMe'] = 'login/loginMe';
$route['logout'] = 'user/logout';

显示所有控制器和功能的错误 404。

【问题讨论】:

  • 可能是很多事情...您的登录名和用户控制器文件的第一个字母是大写的。如果你展示这些可能会有所帮助。
  • 所有命名空间都是正确的。在本地主机上一切正常,但在实时服务器上,除了欢迎控制器显示错误 404。
  • 什么是实时服务器 URL ??
  • 所以你的登录控制器被命名为 Login.php,你的用户控制器被命名为 User.php。那么您的本地开发服务器在什么系统上运行?

标签: codeigniter routes http-status-code-404


【解决方案1】:

如果你将 index.php 放在域之后,这将起作用。

http://www.example.com/index.php/login/

您应该通过替换 config 和 .htaccess 从 url 中删除 index.php

在 config.php 中替换

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

$config['index_page'] = '';

.htaccess

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

【讨论】:

    【解决方案2】:

    这对我有用:

    1. 在config文件夹的config.php中,使用:$config['enable_query_strings'] = FALSE;
    2. 使用$config['uri_protocol'] = 'AUTO';
    3. Use $config['index_page'] = '';
    4. 还记得设置您的基本网址。我的是:$config['base_url'] = 'http://localhost/code';
    5. 最后使用下面的htaccess文件:

      <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /code/index.php/$1 [L] </IfModule>

    注意:记得在 htaccess 文件中编辑 index.php 的路径。希望这对你有用

    【讨论】:

    • +1 用于 Htaccess 规则。当我将代码移动到实时服务器时,我的 htaccess 没有移动,我陷入了404 的问题。感谢您的帮助
    猜你喜欢
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    相关资源
    最近更新 更多