CI框架伪静态化配置
CI框架伪静态化配置
伪静态化,即:去掉入口的index.php, 在url后面加上 .html 后缀
CI默认的rewrite url中是类似这样的,例如你的CI根目录是在/CodeIgniter/下,你的下面的二级url就类似这样 http://localhost/CodeIgniter/index.php/welcome。不太好看,怎么把其中的index.php去掉呢?
开启 rewrite_module
首先,你要清楚自己的 Web 服务器是 Apache ,支持 mod_rewrite,并且已经配置好 rewrite 相关的参数。
加载
rewrite_module// 打开 conf/httpd.conf 找到下面这句,去掉前面的#
#LoadModule rewrite_module modules/mod_rewrite.so
网站根目录添加
.htaccess
在网站根目录添加.htaccess(内写伪静态正则代码,这个文件可以在conf/httpd.conf 中的AccessFileName .htaccess指定)也可以直接在conf/httpd.conf中添加伪静态正则代码,然后重启apache(
apache -k restart)就可以使用伪静态地址啦。> 如果没有安装 mod_rewrite,可以重新编译 Apache(或若为win系统建议重新安装),并在原有 configure 的内容中加入 –enable-rewrite=shared,然后再在 Apache 配置文件中加入正则代码。
mod_rewrite 简介和配置
Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等
mod_rewrite 规则的使用
# .htaccess:
RewriteEngine on
# 锁定域名
RewriteCond %{HTTP_HOST} !^www.iphpmysql.cn [NC]
RewriteRule ^/(.*) http:// www.iphpmysql.cn / [L]
RewriteEngine on
# RewriteRule 前面没有设置 RewriteCond 则为无条件重写
RewriteRule ^/test([0-9]*).html$ /test.php?id=$1 # test102.html -> test.php?id=102 伪静态url
RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R]
mod_rewrite 规则修正符:
R强制外部重定向F禁用URL,返回403HTTP状态码。G强制URL为GONE,返回410HTTP状态码。P强制使用代理转发。L表明当前规则是最后一条规则,停止分析以后规则的重写。N重新从第一条规则开始运行重写过程。C与下一条规则关联T=MIME-type(force MIME type) 强制MIME类型NS只用于不是内部子请求NC不区分大小写QSA追加请求字符串NE不在输出转义特殊字符 eg: \%3d$1 等价于 =$1
--
# CI根目录/.htaccess :
RewriteEngine on
# 排除某些目录或文件
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt) # $1为下面RewriteRule捕获的元组?
RewriteRule ^(.*)$ /index.php/$1 [L]
要注意 /index.php/$1 要根据你目录(Web目录,比如 http://www.domain.com/index.php)的实际情况来定,比如网站根目录是 /ci/index.php 则要写成 /ci/index.php/$1
最后还要修改 CIDirectory/config/config.php :
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
// $config['index_page'] = "index.php";
$config['index_page'] = "";
如果经过以上设置还是不成功的话就是Apache配置问题啦。
试试 httpd.conf文件中:
# AllowOverride None
# 改为
AllowOverride All
CI框架伪静态化配置的更多相关文章
- nginx location匹配顺序及CI框架的nginx配置
Nginx location匹配顺序如下: 用前缀字符串定义的location规则对URI进行匹配测试. =号定义了精确的前缀字符串匹配,如果发现精确匹配则使用当前规则.否则继续下一步匹配. 匹配其它 ...
- php ci nginx 伪静态rewrite配置方法
php ci nginx 伪静态rewrite配置方法 location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$ ...
- CI框架+Umeditor上传图片配置信息
Umeditor提供了一个上传文件通用的类Uploader.class.php, 首先将Uploader.class.php类放入CI框架的libraries目录下更名为Myuploader.php然 ...
- 在CI框架中的配置整合amfphp
之前做的项目用到CI框架和amfphp的整合,主要用于php与flex的交互,在此做一下记录: 一. 安装CI框架: 1. 搭建PHP运行环境,本人在WIN7下用WAMP作测试,安装目录:d:/wa ...
- CI 框架 伪静态设置 去掉index.php
.htaccess文件修改 DirectoryIndex index.php RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME ...
- CI框架源码阅读笔记3 全局函数Common.php
从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap ...
- CI框架源码阅读笔记1 - 环境准备、基本术语和框架流程
最开始使用CI框架的时候,就打算写一个CI源码阅读的笔记系列,可惜虎头蛇尾,一直没有行动.最近项目少,总算是有了一些时间去写一些东西.于是准备将之前的一些笔记和经验记录下来,一方面权作备忘,另一方面时 ...
- CI框架源代码阅读笔记3 全局函数Common.php
从本篇開始.将深入CI框架的内部.一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说.全局函数具有最高的载入优先权.因此大多数的框架中BootStrap ...
- CI框架--URL路径跳转与传值
CI框架使用URL的前提是需要加载辅助函数$this->load->helper('url');当然我建议大家将所有需要加载的东西写在构造方法内,这样就不需每个控制器每个方法都去调用一次了 ...
随机推荐
- MyBatis SqlSessionFactory的几种常见创建方式
原文链接:https://blog.csdn.net/jimolangge123/article/details/49228255 MyBatis框架主要是围绕着SqlSessionFactory这个 ...
- python 获取环境变量
python 获取环境变量 参考 https://docs.python.org/2/library/os.html 使用os.environ获取环境变量字典 import os env_dist = ...
- mysql 系统表的作用
mysql 的系统表记录了所有数据库表(包括视图的定义语句)的字段列,顺序,类型等等,知道这些的话可以做些抽取模板淫荡的操作吧 嘿嘿 public void shuaxinglb() { try { ...
- Windows下Python3+nose+appium自动化测试之Android篇
[本文出自天外归云的博客园] 简介 以下用来做自动化测试的这款app叫最爱抓娃娃,以后会改名为网易抓娃娃. 下文提到的appiumier项目里会包含用来测试的apk包以及自动化测试代码. 先说一个坑 ...
- Docker、Dockerfile、Docker镜像、容器这些都是什么鸟?
老生常谈,再再再……普及一下: Docker:最早是dotCloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotCloud改成Docker. Dockerfile: ...
- poj1077(康托展开+bfs+记忆路径)
题意:就是说,给出一个三行三列的数组,其中元素为1--8和x,例如: 1 2 3 现在,需要你把它变成:1 2 3 要的最少步数的移动方案.可以右移r,左移l,上移u,下移dx 4 6 4 5 67 ...
- SVN下载时提示“已经锁定”
问题现象:同事让我提交代码,我就先下载后提交,但下载时提示“D:\ABC”已经锁定. 问题原因:原因不明. 问题处理:向上退一级,右击目录->SVN->"清理"-> ...
- Android MediaScanner 总纲
1. MediaScanner HEAD 2. 应用层 MediaProvider packages\providers\MediaProvider (1) MediaProvider package ...
- git学习相关的博客地址
Git分支管理策略: http://www.ruanyifeng.com/blog/2012/07/git.html Git 使用规范流程: http://www.ruanyifeng.com/blo ...
- Java new Date() bug
往 MongoDB 中 upsert 记录,记录中的一个字段是 Date 类型的,这个字段是我 new Date() 放进去的. 然后落库的时候,发现这个时间比当前时间要晚 1h30min 左右. 我 ...