我正在开发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工作正常只有这个版本存在问题
答案 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文件夹之内