尝试从codeigniter中的URL中删除index.php

时间:2013-02-13 07:15:59

标签: codeigniter

我正在尝试从网址中删除“index.php”。我试过制作

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

作为

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

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

作为

$config['index_page'] = '';

甚至尝试放

RewriteEngine on
RewriteCond $1 !^(index\.php|[Javascript / CSS / Image root Folder name(s)]|robots\.txt)
RewriteRule ^(.*)$ /project/index.php/$1 [L]

在.htaccess文件中,但它不起作用。谁能告诉我哪里出错了? 提前谢谢..

4 个答案:

答案 0 :(得分:1)

鉴于你告诉我你正在使用Ubuntu ......

  1. 使用Ayman提供的.htaccess配置。
  2. 打开终端并输入sudo a2enmod rewrite以在您的计算机上启用mod_rewrite
  3. 使用sudo nano /etc/apache2/sites-enabled/000-default打开000默认值,并将AllowOverride None的第一次出现更改为AllowOverride All
  4. 然后使用sudo service apache2 restart重新启动apache。

    也可以使用:$config['index_page'] = '';

答案 1 :(得分:1)

删除index.php有3个步骤

1.在application / config.php文件中进行以下更改

$config['base_url'] = 'http://'.$_SERVER['SERVER_NAME'].'/Your Ci folder_name';
$config['index_page'] = '';
$config['uri_protocol'] = 'AUTO';

2.使用以下代码

在根目录中创建.htacces文件
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

3.启用重写模式

我。首先,使用以下命令启动它:

a2enmod重写

II。编辑文件/ etc / apache2 / sites-enabled / 000-default

AllowOverride无更改为 AllowOverride All

III。使用以下命令重新启动服务器:

sudo /etc/init.d/apache2 restart

答案 2 :(得分:0)

这是我一直使用的.htaccess文件。适合我:

<IfModule mod_rewrite.c>
  DirectoryIndex index.php
  RewriteEngine on
  RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteBase /project/
  RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
</IfModule>

答案 3 :(得分:0)

得到了答案,我刚刚在.htaccess文件中插入了以下代码:

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

并制作 $config['index_page'] = '';

config.php

中的

来源:Remove "index.php" from URL - Codeigniter r

回答:@Akhilraj N S