## URL重写
可以通过URL重写隐藏应用的入口文件`index.php`(也可以是其它的入口文件,但URL重写通常只能设置一个入口文件),下面是相关服务器的配置参考:
### \[ Apache \]
1. `httpd.conf`配置文件中加载了`mod_rewrite.so`模块
2. `AllowOverride None`将`None`改为`All`
3. 把下面的内容保存为`.htaccess`文件放到应用入口文件的同级目录下
~~~
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
~~~
### \[ IIS \]
如果你的服务器环境支持`ISAPI_Rewrite`的话,可以配置`httpd.ini`文件,添加下面的内容:
~~~
RewriteRule (.*)$ /index.php?_url=/$1 [I]
~~~
### \[ Nginx \]
在Nginx低版本中,是不支持PATHINFO的,但是可以通过在`Nginx.conf`中配置转发规则实现:
~~~
location / { // …..省略部分代码
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?_url=/$1 last;
}
}
~~~
> 其实内部是转发到了ThinkPHP提供的兼容URL,利用这种方式,可以解决其他不支持PATHINFO的WEB服务器环境。
如果你的应用安装在二级目录,`Nginx`的伪静态方法设置如下,其中`youdomain`是所在的目录名称。
~~~
location /youdomain/ {
if (!-e $request_filename){
rewrite ^/youdomain/(.*)$ /youdomain/index.php?_url=/$1 last;
}
}
~~~
原来的访问URL:
~~~
http://serverName/index.php/模块/控制器/操作
~~~
设置后,我们可以采用下面的方式访问:
~~~
http://serverName/模块/控制器/操作
~~~
- 序言
- 基础
- 安装
- 规范
- 目录
- 配置
- 架构
- 入口文件
- 伪静态配置
- Facade
- 使用行为
- 路由
- 路由定义
- 控制器
- 定义控制器
- 数据库
- 连接数据库
- 链式操作
- where
- builder
- field
- limit
- page
- order
- group
- find
- select
- value
- count
- sum
- average
- maximum
- minimum
- column
- update
- insert
- delete
- begin
- rollback
- commit
- left
- right
- inner
- for_update
- shared_lock
- cache
- 构造器
- 查询
- 添加
- 更新
- 删除
- 模型
- 创建模型
- 自动时间戳
- 模型关联
- 模型事件
- 数据转换
- 软删除
- 视图
- 模板
- 日志
- 调试
- 验证
- CLI命令行
- 标准
- 命名规范
- 语法规范
- 注释规范
- 设计模式
- 开发提示
- 数据字典
- Markdown使用文档
- volt模板引擎
- 简介
- 注释
- 变量
- 过滤器
- 流程控制
- 循环语句for
- 条件判断语句if
- 表达式及运算符
- 函数