我在/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)上运行的本地系统。
任何帮助将不胜感激。 :)
答案 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
。