CodeIgniter从URL中删除index.php不起作用

时间:2018-02-02 08:59:27

标签: php .htaccess codeigniter

以下是我从网址

中删除index.php所做的更改

已替换$config['index_page'] = "index.php"

$config['index_page'] = ""

然后替换$config['uri_protocol'] ="AUTO"

$config['uri_protocol'] = "REQUEST_URI"

然后我在.htaccess文件

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

但这不起作用。任何想法,有什么不对?

4 个答案:

答案 0 :(得分:2)

您不必编辑index.php,将内容.htaccess文件替换为:

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

答案 1 :(得分:0)

请尝试使用以下代码。

RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
RewriteRule ^(.*)$ - [E=BASE:%1]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

答案 2 :(得分:0)

我不知道,但我认为你需要做的最后一件事就是你的Apache。的httpd.conf

更改

AllowOverride None

AllowOverride All

我也可以知道你的.htaccess位于哪里?

答案 3 :(得分:0)

将.htaccess文件放在项目文件夹中,如下所示:

的htdocs / your_project / htaccess的

尝试使用.htaccess的新代码:

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

请勿尝试删除应用程序文件夹中已有的其他.htaccess文件。

config.php的变化如下:

$config['base_url'] = 'http://localhost/your_project_name/';
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';

不要使用:

$config['uri_protocol'] ="AUTO"

希望它能为你完美地工作。