Codeigniter URL重写.htaccess不适用于CentOS

时间:2013-12-20 19:21:14

标签: linux apache .htaccess codeigniter mod-rewrite

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

e.g。从

更改网址
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]

我通过Google搜索获得了许多建议,以启用mod-rewrite模块,但我可以在我的httpd.conf中看到它已经启用。

LoadModule rewrite_module modules/mod_rewrite.so

这完全适用于在Debian 7(Apache / 2.4.4)上运行的本地系统。

任何帮助将不胜感激。 :)

2 个答案:

答案 0 :(得分:12)

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

<Directory "/var/www/html">

      ...lots of text...

</Directory>

确保有:

<Directory "/var/www/html">

    AllowOverride All

</Directory>

答案 1 :(得分:0)

您的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