CodeIgniter删除URL中的index.php

时间:2014-10-29 07:56:20

标签: .htaccess codeigniter codeigniter-2 codeigniter-url

我已在codeigniter系统中创建了Ubuntu项目,并在base_url之后添加了以下内容。

http://192.168.1.123/project/

如果我访问任何其他网址,如下所示。

http://192.168.1.123/project/course/view/1

重定向到“找不到页面”。如果我在index.php之后加入base_url,则其工作正常。

我创建了.htaccess文件如下。

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

config.php档案

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

更改为

$config['index_page'] = '';

但它仍然不起作用。请建议灵魂。我们将不胜感激。

5 个答案:

答案 0 :(得分:4)

更改.htaccess文件并尝试

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

答案 1 :(得分:2)

第1步:

在htaccess文件中添加

<IfModule mod_rewrite.c>
  RewriteEngine On
  #RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [QSA,L]
</IfModule>

第2步:

删除codeigniter config中的index.php

$config['base_url'] = ''; 
$config['index_page'] = '';

第3步:

允许覆盖Apache配置(命令)中的htaccess

sudo nano /etc/apache2/apache2.conf

并编辑文件&amp;改为

AllowOverride All

用于www文件夹

第4步:

启用apache mod rewrite(命令)

sudo a2enmod rewrite

第5步:

重启Apache(命令)

sudo /etc/init.d/apache2 restart

答案 2 :(得分:0)

试试这个:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /project/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /project/index.php [L]
</IfModule>

而且,在config.php

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

请确保mod_rewrite模块已启用

答案 3 :(得分:0)

首先将.htaccess文件放在应用程序文件夹之外。

然后将以下代码放入.htaccess文件

RewriteEngine On

RewriteCond%{REQUEST_FILENAME}!-f

RewriteCond%{REQUEST_FILENAME}!-d

RewriteRule ^(。*)$ index.php / $ 1 [L]

现在你可以在不使用index.php的情况下刷新你的网址,它肯定可以正常工作

答案 4 :(得分:0)

对于使用Linux的用户,这是要遵循的步骤

在项目的根文件夹中打开.htaccess文件。该文件夹与 application 文件夹位于同一文件夹。

将.htaccess的内容编辑为

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

打开配置文件并更改

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

$config['index_page'] = '';

导航到 etc / apache2 并打开一个名为 apache2.conf

的文件夹

AllowOverride 编辑为全部,如下所示

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted

</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted

</Directory>

打开终端并运行此命令

sudo a2enmod rewrite

要激活新配置,请使用此命令重新启动apache

systemctl restart apache2

您现在已经成功从网址中删除了index.php