【问题标题】:Codeigniter 3 remove index.php not working and throws 404 Page Not Found [duplicate]Codeigniter 3 删除 index.php 不起作用并抛出 404 Page Not Found [重复]
【发布时间】:2018-01-10 18:57:00
【问题描述】:

我坚持删除index.php

在我的 apache 中启用了 mod Rewrite,我之前已经检查过

我的网址

http://localhost/projects/ci/admin

这是我的控制器

class Admin extends CI_Controller{
    public function index()
    {
        echo "Admin Function";
    }
}

这是我从 Codeigniter user_guide 复制的 .htaccess 文件

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

完成一切以运行它:

改变了 $config['base_url'] = '';$config['base_url'] = 'http://localhost/projects/ci/';

$config['uri_protocol'] = 'REQUEST_URI'; 更改为$config['uri_protocol'] = 'AUTO';,反之亦然

还有$config['index_page'] = 'index.php';$config['index_page'] = ''; 在stackoverflow解决方案的帮助下,但未能这样做。

【问题讨论】:

  • 提供您的routes(如果有)
  • 你应该这样做,但如果你指定路线,它是否有效?另外,控制器文件的名称是什么?
  • 您应该配置服务器,使localhost 指向文件夹/what/ever/projects/ci/。然后使用 `$config['base_url'] = 'localhost';
  • 启用 mod rewrite 并不意味着您可以使用 .htaccess 文件。您需要确保将 apache 配置为 Allowoverride = all
  • localhost/projects/ci/index.php/admin 这是在工作吗@syed

标签: php .htaccess codeigniter codeigniter-3


【解决方案1】:

在 .htaccess 文件中 复制以下代码并保存 然后试试看

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

【讨论】:

  • 还是不行
  • 您是否将控制器保存为“Admin.php”或“admin.php”。如果您将其保存为“admin.php”,则必须另存为“Admin.php”。
  • 我把它保存为 admin.php ,
  • 所以你必须保存为“Admin.php”而不是“admin.php”。
  • 确定我会把它保存为“Admin.php”,然后告诉你
【解决方案2】:

我在一个正在开发的应用程序上分享我的配置(使用 CI)

在文件 ../application/config/routes.php 中,CI v3.1.6 的第 53 行

$route['default_controller'] = 'MyDefaultController';

.htaccess

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

据我所知,如果你的所有系统文件都分配在服务器上的 ../public_html 文件夹上,你是否删除 index.php 并不重要,如果没有,你应该保留它并进行更改,以便 CI"知道”在哪里可以找到系统、应用程序和视图文件。

另外,如果你删除 index.php 并且没有在 routes.php 上设置默认控制器,(对不起我的英文在这里)CI 将找不到它的“索引页”。

简而言之,检查 routes.php 上的默认控制器 希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-05
    • 2012-09-05
    • 2011-11-09
    • 1970-01-01
    • 2020-01-06
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多