里面配置环境
一》在linux里面设置
1.打开apache的配置文件,conf/httpd.conf :
loadmodule rewrite_module modules/mod_rewrite.so,把该行前的#去掉。
搜索 allowoverride none(配置文件中有多处),看注释信息,将相关.htaccess的该行信息改为allowoverride all。【其实apache 默认的都已经打开的】
2.在ci的根目录下,即在index.php,system的同级目录下,建立.htaccess,直接建立该文件名不会成功,可以先建立记事本文件,另存为该名的文件即可。内容如下(ci手册上也有介绍):
rewriteengine on
rewritecond $1 !^(index\.php|images|robots\.txt)
rewriterule ^(.*)$ /index.php/$1 [l]
如果文件不是在www的根目录下,例如是:,第三行
需要改写为rewriterule ^(.*)$ /nianyi_2011/index.php/$1 [l]
另外,如果你的网站的根目录下面还有其他的文件夹,例:js,css,images,config等等文件夹,这需要过滤除去,第二行需要改写为:
rewritecond $1 !^index\.php|images|js|css|config|robots\.txt)。
3.将ci中配置文件(application/config/config.php)中$config['index_page'] ="index.php";改写成$config['index_page'] = "";
4.ok,完成。还要记得重启apache。
二》在windows里面开发
以上的配置在windows上面是不起任何作用的,所以我们在windows里面需要设置我们的apache的虚拟主机,在apache里面找到apache-20\conf\extra\httpd-vhosts.conf 这个文件【我用的是服务是phpnow,很多的人用wamp】,同样找到此文件,在里面修改,例:
#
# filename: httpd-vhosts.conf
allowoverride all
order allow,deny
allow from all
namevirtualhost *
documentroot ../htdocs
servername default:80
errorlog logs/default-error_log
修改成:
#
# filename: httpd-vhosts.conf
rewriteengine on
rewritecond $1 !^(index\.php|images|js|css|config|robots\.txt)
rewriterule ^(.*)$ /index.php/$1 [l]
allowoverride all
order allow,deny
allow from all
namevirtualhost *
documentroot ../htdocs
servername default:80
errorlog logs/default-error_log
也就是把路由写到这里面来。记得重新启动服务。
继续修改你的配置文件:
$config['enable_query_strings'] = true
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
把$config['enable_query_strings'] 修改成 false 这样就关闭了查询字符串形式 url
现在你的文件的路径就可以写得了,例如:
就相当于先前没有配置的路由:同样如果后面有参数的话,只用往后一次累加就好的了。
请注意:有时候我们这样写之后样式文件加载进来会有问题,找不到js css images等等目录,我们可以配置文件config.php里面设置$config['base_url'] = 'http://localhost/2011_11_cms/';站点的目录,接着我们在view模板文件之间添加,这样就能加载其他的文件的了