Codeigniter URL重写.htaccess在CentOS上不起作用

我在/var/www/html/文档根目录下创build了一个.htaccess文件来重写Codeigniter的URL,以从所有页面的URL中删除“index.php”。

例如,更改URL

 http://myhost/index.php/controller/function 

 http://myhost/controller/function` 

这是我的`/var/www/html/.htaccess的代码

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

我有很多使用googling来启用mod-rewrite模块的build议,但是我可以在我的httpd.conf看到它已经启用了。

 LoadModule rewrite_module modules/mod_rewrite.so 

这在我的本地系统上运行在Debian 7(Apache / 2.4.4)上是完美的。

任何帮助,将不胜感激。 🙂

Solutions Collecting From Web of "Codeigniter URL重写.htaccess在CentOS上不起作用"

您还需要指定可以使用它的位置。 例如,在/etc/httpd/conf/httpd.conf中你应该看到类似于:

 <Directory "/var/www/html"> ...lots of text... </Directory> 

确保有:

 <Directory "/var/www/html"> AllowOverride All </Directory> 

有可能你的Centos服务器没有设置处理PATH INFO。 尝试将规则目标中的index.php/$1替换为index.php?/$1

然后你需要修改你的CI配置来启用查询字符串: http : //ellislab.com/codeigniter/user-guide/general/urls.html

在你的application/config.php文件中设置$config['enable_query_strings']TRUE