没有URL中的index.php,无法访问Codeigniter控制器

时间:2019-01-16 13:19:10

标签: php .htaccess codeigniter

我已经尝试过解决之前在这里提出的类似问题,并尝试了几种解决方案,但是它们似乎没有用。

我的localhost 目录中有一个名为“ projectX”的文件夹,该文件夹是 CodeIgniter项目

该项目有一个称为仪表板的控制器。

可通过以下链接访问仪表板http://localhost/projectX/index.php/dashboard

但是,如果我尝试没有执行此操作,则index.phphttp://localhost/projectX/dashboard)表示未找到。

这是我的.htaccess文件的样子(该文件位于应用程序文件夹外部,位于projectX文件夹的根目录中)

RewriteBase /projectX

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

这是我的配置文件:-

$config['base_url'] = "http://localhost/projectX/";
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = '';

/*

我在做什么错了?

2 个答案:

答案 0 :(得分:1)

检查以下规则:

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

并也更改此内容

$config['uri_protocol'] = "AUTO"

//  Replace with

$config['uri_protocol'] = "REQUEST_URI" 

来源:https://www.codeigniter.com/userguide3/general/urls.html

答案 1 :(得分:0)

在您的.htaccess文件中尝试

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