Codeigniter 3.1.6 - 如何从url中删除index.php

时间:2017-10-06 15:12:58

标签: php .htaccess codeigniter codeigniter-3

我正在开发codeigniter 3.1.6。

我添加了.htaccess文件。 我还将base_url路径更改为我的项目路径,从index.php删除index_page并将url_protocol更改为REQUEST_URI

尽管如此,当我将网址重定向到任何控制器方法时,它会抛出一个错误' The page you requested was not found。'

我也搜索并应用了不同的.htaccess但它不起作用。 如果我在base_url的末尾添加/index.php然后它的工作但它的错误。它应该没有index.php.Only 3.1.6给出这个问题。

注意:codeigniter-3.1.4工作正常只有这个版本存在问题

5 个答案:

答案 0 :(得分:2)

在.htaccess中使用此脚本

<IfModule mod_rewrite.c>
   RewriteEngine On
   # !IMPORTANT! Set your RewriteBase here and don't forget trailing and leading
  #  slashes.
  # If your page resides at
  #  http://www.example.com/mypage/test1
  # then use
  # RewriteBase /mypage/test1/
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond $1 !^(index\.php|images|robots\.txt|css|docs|js|system)

  RewriteRule ^(.*)$ index.php?/$1 [L]
  # If your root folder is at /mypage/test1/
  RewriteRule ^(.*?)$ /mypage/test1/index.php?/$1 [L]

</IfModule>

<IfModule !mod_rewrite.c>
 # If we don't have mod_rewrite installed, all 404's
 # can be sent to index.php, and everything works as normal.
 # Submitted by: ElliotHaughin

  ErrorDocument 404 /index.php
 </IfModule>

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

答案 1 :(得分:2)

将文件夹名称CodeIgniter-3.1.6更改为ci

base_url设置为

$config['base_url'] = 'http://localhost/ci/

使用此.htaccess

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

答案 2 :(得分:1)

1)编辑config.php

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

 $config['index_page'] = '’;

2)创建/编辑.htaccess文件

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

答案 3 :(得分:0)

1:在根目录中创建.htaccess文件而不是另一个项目文件夹目录。

2:编写或复制此代码并粘贴

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

我希望这会正常运作。 进入配置文件并进行更改 $配置[ 'url_protocol'] = '自动';

答案 4 :(得分:0)

其他提示:确保根文件夹中的.htacces不在> application文件夹之内