windows下安装CI框架
CI框架是一个非常流行的 mvc框架, CI框架如何安装和使用,在CI中文网已经讲的比较详细了 ,这里记录下几个需要注意的地方。
一、 index.php问题
把压缩包下载解压到项目根目录即可运行里面的demo。按照ci手册上的第一个例子,通过controllers访问welcome控制器里面的index方法 ,只需要在浏览器运行 http://localhost/CodeIgniter-3.0.6/index.php即可 (其中CodeIgniter-3.0.6为CI框架的目录可以自定义)
这里的url没有带控制器Welcome是因为在config/routes.php里面写了默认的路由配置: $route['default_controller'] = 'welcome';
然后在运行第二个例子application/controllers/Pages.php时,
在地址栏一直是输入的是:http://localhost/CodeIgniter-3.0.6/pages/test/ 和 http://localhost/CodeIgniter-3.0.6/pages/test/about 发现一直报错Not Found The requested URL /CodeIgniter-3.0.6/pages/test/about was not found on this server.
目录:
controllers/pages.php :
<?phpclass Pages extends CI_Controller { public function test($page = 'home'){ //参数可以作为路由,比如:http://localhost/CodeIgniter-3.0.6/pages/test/about 将跳转到about页面 if (!file_exists(APPPATH.'views/pages/'.$page.'.php')){ show_404(); } $data['title'] = ucfirst($page); $this->load->view('pages/'.$page, $data); } } ?>
home.php
<?php define("VIEWPATHS", dirname(__DIR__)); require_once(VIEWPATHS.'/template/header.php'); echo "hello home page."; require_once(VIEWPATHS.'/template/footer.php'); //__DIR__ 获取的是当前文件所在文件夹 //dirname(__DIR__) 获取的是当前文件所在文件夹的上一级目录
header.php
<!DOCTYPE html> <html> <head> <title><?php echo $title ?></title> </head> <body> <h1> <?php echo $title; ?> </h1>
footer.php
<div><em>© 2016</em></div>
</body>
</html>
以为是哪里需要配置什么 ,后来看到路由那块时发现需要在浏览器中输入[your-site-url]index.php/pages/view 。
需要加入index.php 太坑了。
怎么去掉url中的这个index.php呢 ,在网上搜索了下 有几个方法 。
1. 需要开启apache的rewrite
a. 找到LoadModule rewrite_module modules/mod_rewrite.so 去掉前面的#
b. 找到<Directory "D:/my/develop/apacheDev"> 将里面的AllowOverride none 改为 AllowOverride All (需要重启apache)
2. 在index.php同目录下新建.htaccess
输入内容:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|js|css|robots\.txt)
RewriteRule ^(.*)$ /CodeIgniter-3.0.6/index.php/$1 [L]
其中CodeIgniter-3.0.6可根据实际目录填写
这样重启apache之后就可以直接通过控制器访问啦
http://localhost/CodeIgniter-3.0.6/pages/test 访问正常
http://localhost/CodeIgniter-3.0.6/pages/test/about 访问正常
参考文档:
http://codeigniter.org.cn/user_guide/tutorial/static_pages.html
http://www.php1.cn/article/7601.html