删除index.php从URL – Codeigniter 2

我无法从Codeigniter中的URL中删除index.php。 我用Codeigniter 1.7创build了一些网站,我用的.htaccess代码在2中不起作用。

我曾尝试使用

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

 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt|css) RewriteRule ^(.*)$ ./index.php/$1 [L] </IfModule> 

我也试过没有RewriteBase /中。

我已经将$ config ['uri_protocol']更改为REQUEST_URI和QUERY_STRING,没有任何内容。

我已经设置了$ config ['index_page'] =“”;

文件结构是192.168.0.130/(site)/,所以它必须回到服务器的根目录,并且找不到index.php文件。

我所做的所有控制器都可以通过把192.168.0.130/(site)/index.php/testcontroller

谢谢。

如果之前已经问过这个问题,我表示歉意 – 我已经看过并尝试了我所能看到的。

编辑:

我还应该补充说,我改变了默认的文件夹

应用

CI-2.0

的index.php

并改变了index.php中的path是正确的。

尝试你发布的第一个代码块,而不是/index.php尝试使用/(site)/index.php(obv用您的站点文件夹命名的obvreplace(site))。

这对我工作:

  1. 创build你的htaccess文件
  2. 将$ config ['index_page']设置为空(config.php)
  3. stringSet $ config ['uri_protocol'] ='REQUEST_URI'; (config.php的)

这是我的htaccess文件:

 Options -Indexes Options +FollowSymLinks 
 RewriteEngine On RewriteBase / #Removes access to the system folder by users. #Additionally this will allow you to create a System.php controller, RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ index.php?/$1 [L] #When your application folder isn't in the system folder RewriteCond %{REQUEST_URI} ^application.* RewriteRule ^(.*)$ /index.php?/$1 [L] #Checks to see if the user is attempting to access a valid file, #such as an image or css document, if this isn't true it sends the #request to index.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] 
 # 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 

资源:

http://taggedzi.com/articles/display/codeigniter-2-htaccess-and-friendly-urls

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

这只需要在根文件夹中添加这个.htaccess

遵循其他人的所有说明并从此CodeIgnitor URL文档中 ,不要忘记重新启动服务器 。 我只是忘了这样做,不断尝试所有其他的解决scheme。

我在这上了两天..试了一切可能的。 我刚刚出来,你需要以下几点:

types:

 sudo nano /etc/apache2/sites-available/default 

并将AllowOverride None更改为AllowOverride All – 这将访问您的.htaccess文件

 <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all # Uncomment this directive is you want to see apache2's # default start page (in /apache2-default) when you go to / #RedirectMatch ^/$ /apache2-default/ </Directory> 

还可以在Apache上启用mod重写:

 http://stackoverflow.com/questions/3131236/how-do-you-enable-mod-rewrite 

希望这有助于,马里奥

你只需要在.htacess中添加下面的代码。

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

1)在根文件夹中创build.htaccess文件

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

2)编辑Application文件夹中的application / config / config.php文件

 $config['base_url'] = 'http://localhost/projectName'; $config['index_page'] = ''; // remove index.php 

我希望它会为你工作