我在codeigniter 2.1.4中为客户开发了一个小项目,现在,他坚持要迁移到codeigniter 3 DEV版本。我知道这不是一个好的想法但是...... 我的问题是我无法从网址中删除index.php。
这是我的.htaccess文件:
Options +FollowSymLinks
RewriteEngine on
# Send request via index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
我从config.php文件中删除了index.php
没有运气
我重新安装了LAMP服务器(我在Ubuntu 12.04'上),重新配置了我在Codeigniter 2.1.4和Laravel 4上开发的本地服务器上有其他项目,它们工作得很好,但这个是它的杀了我
谢谢!
答案 0 :(得分:11)
我这样做了:
使用内容:
在项目的根文件夹中创建.htaccessRewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|css|js|images|robots\.txt)
RewriteRule ^(.*)$ index.php?$1 [L]
然后,在config.php中我修改了这一行。
自:
$config['url_suffix'] = 'index.php';
要:
$config['url_suffix'] = '';
答案 1 :(得分:6)
请将以下代码添加到 .htaccess 文件中,并将其直接包含在 /codeigniter_project_folder/.htacess
中RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L]
答案 2 :(得分:2)
如果您的Apache服务器启用了mod_rewrite,您可以使用带有一些简单规则的.htaccess文件轻松删除此文件。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
删除index.php之后的?
答案 3 :(得分:2)
在.htaccess文件中添加以下行
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]
还可以编辑 application / config / config.php 文件。与
$config[‘index_page’] = “”;
$config[‘uri_protocol’] = “AUTO“;
它会起作用。
答案 4 :(得分:1)
在项目根文件夹.htacess
中创建一个/Your_codeigniter_project_folder/.htacess
文件并粘贴此代码
RewriteEngine On
RewriteCond%{REQUEST_FILENAME}!-f
RewriteCond%{REQUEST_FILENAME}!-d
RewriteRule ^(。*)$ index.php / $ 1 [L]
在config.php文件$config['base_url'] = 'http://yourhost/CI_project_folder/';
$config['url_suffix'] = '.php';
*如果不起作用,请查看*
确保在.htacess
所在的根文件夹中没有任何名称与控制器名称相同的文件。
示例:您有一个users.php
控制器,您在/Your_codeigniter_project_folder/users.php
中也有一个文件
如果有,请将其删除/Your_codeigniter_project_folder/users.php
确保您的服务器处于重写模式(从该行的开头删除#)
LoadModule rewrite_module modules / mod_rewrite.so
答案 5 :(得分:0)
在CI项目的根目录下创建新的.htaccess文件,并在那里添加代码。不要在应用程序文件夹上更改.htaccess文件。这对我有用
答案 6 :(得分:0)
只需下载CI版.htaccess
从root用户复制htaccess.txt
和.htaccess
并将其粘贴到Codeigniter 3项目中。
不要忘记从all_key_combos = hash1.keys.product(hash2.keys)
=> [["key1", "key3"], ["key1", "key4"], ["key2", "key3"], ["key2", "key4"]]
all_key_combos.each do |k1,k2|
#do something with k1 and k2
end
文件更改项目名称。
答案 7 :(得分:0)
在www / project_folder或htdocs / project_folder中创建一个新的htaccess文件
确保mod_rewrite正在使用echo phpinfo()
只需粘贴以下代码即可:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /project_folder/index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
将项目文件夹更改为您自己的
答案 8 :(得分:0)
请注意项目路径的大写。
也就是说,如果base_url为http://localhost/ci/
,目录名称为CI
,则可能无法正常工作。
答案 9 :(得分:-1)
我再次克隆了git存储库并对灯进行了全新安装,现在可以正常工作了。