我是靠谱客的博主 靓丽西牛,最近开发中收集的这篇文章主要介绍ThinkPHP框架中简化URL地址1. 概述2.操作环境3.步骤4.补充说明参考资料,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 概述

  • 在项目中使用ThinkPHP框架,发现使用该框架还能简化URL地址,如:
    http: //localhost/index.php/Home/Index/search
    可以转换为:
    http: //localhost/search

2.操作环境

  • 操作系统:Ubuntu 14.04.3 LTS
  • 框架:ThinkPHP 3.2.3
  • Web服务器:Apache2.4.10

3.步骤

3.1 URL模式设置

  • 需要在ThinkPHP中的应用配置文件中设置(默认为1):“URL_MODEL”=>2
    将ThinkPHP设置为REWRITE模式

3.2 重写规则的定义

  • 在Apache下面的话,在入口文件index.php同目录下,建立.htaccess文件,添加如下内容:
    <IfModule mod_rewrite.c>
     RewriteEngine on
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]
    </IfModule>

3.3 绑定模块与控制器

  • http: //localhost/index.php/Home/Index/search中:
    • index.php:入口文件
    • Home:模块
    • Index:控制器
    • search:方法
  • 因此需要将Home模块、Index控制器与index.php入口文件绑定,从而进入index.php文件则默认进入/Home/Index中。绑定代码如下:
index.php
<?php
    //绑定Home模块
    define('BIND_MODULE','Home');
    //绑定Index控制器
    define('BIND_CONTROLLER','Index');
  • 实现效果为 http: //localhost/index.php/search

3.4 配置Apache2

  • 需要设置Apache2支持 .htaccess文件,首先使Apache2支持 mod_rewrite.so模块
    终端运行:sudo a2enmod   
    输入:rewrite 
  • 修改/etc/apache2/apache2.conf
    <Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All    //修改这一行
        Require all granted
    </Directory>
  • 重启Apache2,即可支持ThinkPHP中的REWRITE模式
  • 实现效果为 http: //localhost/search,大功告成!

4.补充说明

  • 简化URL地址后,其原理是/Home/Index/search方法被绑定到入口文件index.php中。此时search方法中所处的目录为index.php的所在目录,而不是其物理目录“/Home/Controller/”中,所以之后在search方法中需要指定路径时,“./”路径代表的是与index.php所处的同一路径,而不是“/Home/Controller/”

参考资料

http://document.thinkphp.cn/manual_3_2.html#url

http://my.oschina.net/DDDdragon/blog/293873

最后

以上就是靓丽西牛为你收集整理的ThinkPHP框架中简化URL地址1. 概述2.操作环境3.步骤4.补充说明参考资料的全部内容,希望文章能够帮你解决ThinkPHP框架中简化URL地址1. 概述2.操作环境3.步骤4.补充说明参考资料所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(84)

评论列表共有 0 条评论

立即
投稿
返回
顶部