PHP 之 Ci框架下隐藏index.php
1. 修改 apache 配置文件
- 开启重写模块 conf/httpd.conf
去掉前面的#
LoadModule rewrite_module modules/mod_rewrite.so
对于Ubuntu,需要在apache安装目录下的 mods-enabled 文件夹中创建软连接。
进入 /mods-enabled 下,
cd mods-enabled/
sudo ln -s ../mods-available/rewrite.load rewrite.load # 要确保 ../mods-available/rewrite.load 文件存在,不存在需要安装rewrite模块
注:apache安装目录下:mods-available---未启用的模块,mods-enabled----已启用的模块
- AllowOverride None 修改为 AllowOverride All
可以在apache的配置文件 conf/httpd.conf 末尾添加如下代码,或是在 sites-enabled 文件夹下新建个 .conf 文件,文件名随意,也可像 mods-enabled/ 下那样创建链接。
Alias /athena "/home/liuqian/workspace/athena/" # 依据实际情况改为自己的路径
<Directory "/home/liuqian/workspace/athena/"> # 依据实际情况改为自己的路径
Options Indexes MultiViews FollowSymLinks
AllowOverride All # 主要是这个
Order allow,deny
Allow from all
</Directory>
注:apache安装目录下:sites-available---未加载的配置文件,sites-enabled----已加载的配置文件
2. 添加 .htaccess 文件
进入到项目文件夹下,在 index.php 所在的目录下创建 .htaccess 文件

文件中写如下:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $ !^(index\.php|BJUI|captcha|js|plugins|images|robots\.txt) # index.php的同级目录下还有要过滤除去的文件夹,把名字一并写到这里
RewriteRule ^(.*)$ /athena/index.php/$1 [L] # 如果网站就在根目录下,就直接写 index.php/$1 [L],我的index.php是在根目录下的athena文件下中 #如果没有安装mod_rewrite模块,所有的404页面都将被 #发送到index.php,此时,程序会像没有设置隐藏时一样运行
ErrorDocument index.php
3. 修改Ci配置文件 application/config/config.php
$config['index_page'] = "index.php";
改为:
$config['index_page'] = "";
4. 重启apache 就ok了。
sudo apachectl restart # 这里是ubuntu的重启命令
PHP 之 Ci框架下隐藏index.php的更多相关文章
- CI 目录下放置index.html,防止直接访问
CI 目录下放置index.html,防止直接访问
- CI框架下CSS和JS的路径问题
注意:CI框架下的CSS和JS的引用必须放在框架外面,比如,可建立resource文件夹与application同级,用来封装CSS和JS. 在view层用resource里面CSS和JS可采用以下几 ...
- CI框架 .htaccess 隐藏url在index.php解决方案
CodeIgniter(下面简称"CI")是一款国外优秀的PHP轻量级MVC框架,它支持PHP4和PHP5.是开发中小型可拓展性需求高的Web应用程序的利器.眼下你所见到的这个博客 ...
- CI 框架下执行CLI(命令行)
1.可以按照Ci官方文件的指导来进行操作 让我们先创建一个简单的控制器,打开你的文本编辑器,新建一个文件并命名为 Tools.php,然后输入如下的代码: <?php class Tools e ...
- CI框架下 新浪微博登录接口完整版
https://www.cnblogs.com/yznyzcw/p/3756622.html#top 说明:本贴只适合CI框架.功能实现:登录接口跳转链接成功,获取用户信息(包括最重要的u_id)成功 ...
- CI框架不能有Index控制器
今天部署了ci框架,想用用它.创建别的控制器没什么错误.但是我创建了一个Index控制器,并访问了index方法,报错了.但是直接在方法中写输出就没事.而且方法名称改为其他部位index的也能访问. ...
- CI框架uri去掉index.php
CI框架的入口是index.php,所以url实际上要多出一个index.php,非常不美观.我使用的是apache服务器,要开启mod_rewrite服务才可以. sudo a2enmod rewr ...
- CI框架下的get_instance() 函数
你随便下个CI框架的源码都会看到很多的get_instance() 函数,这个函数是用来获取CI 的全局超级对象,CI 是单例模式的框架,所有全局有一个超级对象.因为只有一个实例,所以无论这个函数使用 ...
- 在CI框架下执行存储的方法
我直接把代码摆在这里分享哈 <?php /** * * Created by JetBrains PhpStorm. * User: lsl * Date: 14-1-8 * Time: 下午2 ...
随机推荐
- UVa 12219 公共表达式消除
https://vjudge.net/problem/UVA-12219 题意: 用表达式树来表示一个表达式. 思路: 用map来记录出现过的子树.如(b,3,6)表示这棵子树的根为b,左子树为编号为 ...
- Nginx 随笔
使用包管理工具安装nginx Linux(基于deb) sudo apt-get install nginx Linux(基于rpm) sudo yum install nginx FreeBSD s ...
- html 画圆
<html> <head> <script type = "text/javascript" src = "https://d3js.org ...
- JavaScript中对象数组 作业题目以及作业
var BaiduUsers = [], WechatUsers = []; var User = function(id, name, phone, gender, age, salary) { t ...
- jQuery.extend()意义及用途
一.意义 用于将一个或多个对象的内容合并到目标对象 二.用法: $.extend( [deep ], target, object1 [, objectN ] ) 注意: 1. 如果只为$.exten ...
- Lua---执行
1.交互式: 2.脚本式(在命令行不要启动lua解释器,直接输): Testlua.lua 的内容: print("Hello World!")
- 雷林鹏分享:Ruby 命令行选项
Ruby 命令行选项 Ruby 一般是从命令行运行,方式如下: $ ruby [ options ] [.] [ programfile ] [ arguments ... ] 解释器可以通过下列选项 ...
- 20170523xlVBA多条件分类求和一例
Public Sub NextSeven_CodeFrame() Application.ScreenUpdating = False Application.DisplayAlerts = Fals ...
- AndroidStudio使用偷懒插件Butterknife和GsonFormat
1.Android ButterKnife Zelezny Android Studio上安装插件,如图: 配合ButterKnife实现注解,从此不用写findViewById,想着就爽啊.在Act ...
- 『cs231n』作业3问题4选讲_图像梯度应用强化
[注],本节(上节也是)的model是一个已经训练完成的CNN分类网络. 随机数图片向前传播后对目标类优化,反向优化图片本体 def create_class_visualization(target ...