从URL中删除Index.php在CI 3中不起作用

时间:2016-12-22 10:50:00

标签: php .htaccess codeigniter

我已经尝试过从网址中删除index.php。 它根本不起作用。

在config.php中

$config['index_page'] = '';

$config['uri_protocol'] = 'REQUEST_URI';

然后将下面的代码放在我的项目根目录的.htaccess中。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$1 [PT,L]

我试过,它的抛出页面只找不到错误。  enter image description here

enter image description here

enter image description here 有什么建议?? 谢谢

4 个答案:

答案 0 :(得分:1)

您需要更改config.php.htaccess文件。

application/config/config.php

的变化
$config['index_page'] = ""; // And Remove index.php

.htaccess

的变化
RewriteEngine on

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

确定

  1. 您的.htaccess必须位于cloud目录下。

  2. 必须在Apache中启用重写模块。

答案 1 :(得分:1)

您的基本网址不是基本域名,因此请修改.htaccess文件并添加以下内容:

RewriteBase /cloud

这可以解决您的问题。

答案 2 :(得分:0)

试试这个,
.htaccess

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

答案 3 :(得分:0)

如果没有,请确保您的RewriteEngine已在apache conf文件中启用,然后按照此链接

How to enable mod_rewrite for Apache 2.2