热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php5.0后台入口绑定,thinkPHP5.0路由前后端分离绑定模块隐藏入口文件

1.前后端分离a、在网站public目录下新建admin.phpb、打开admin.php[应用入口文件]定义应用目录define(‘APP_PATH‘,__DIR__.‘..ap

1.前后端分离

a、在网站public目录下新建admin.php

b、打开admin.php

// [ 应用入口文件 ]

// 定义应用目录

define(‘APP_PATH‘, __DIR__ . ‘/../application/‘);

// 加载框架引导文件

require __DIR__ . ‘/../thinkphp/start.php‘;

2.绑定模块

1、实现功能

index.php 这个入口文件 只能去前台模块

admin.php 这个入口文件 只能去后台模块   建议后台的入口文件稍微复杂些

2、如何实现

在入口文件中

define(‘BIND_MODULE‘,‘index‘);//绑定前台模块

define(‘BIND_MODULE‘,‘admin‘);//绑定后台模块

3、url地址

a、入口绑定模块之前

http://www.tp5.com/入口文件/模块/控制器/操作

b、入口绑定模块之后

http://www.tp5.com/入口文件/控制器/操作

3.隐藏入口文件

1、开始apache 的重写   F:\phpStudy\PHPTutorial\Apache\conf\httpd.conf

# 把注释去掉

更改后:LoadModule rewrite_module modules/mod_rewrite.so

2、设置访问权限    AllowOverride       none改为All

3、入口文件 ,在网站public目录下新建.htaccess

fcecaa27ea5212ceb9bf034c36bfbf34.gif

//phpstudy的第一种写法

Options +FollowSymlinks -Multiviews

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

fcecaa27ea5212ceb9bf034c36bfbf34.gif

fcecaa27ea5212ceb9bf034c36bfbf34.gif

//第一种方法不好使的话 使用第二种方法

Options +FollowSymlinks -Multiviews

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

fcecaa27ea5212ceb9bf034c36bfbf34.gif

4、重启服务

5、url地址变化

a、隐藏之前

http://www.tp5.com/index.php/Index/test

b、隐藏之后

http://www.tp5.com/Index/test

tp5.0路由学习注意:路由的优点:1.简化url地址,方便记忆   2.有利于搜索引擎的优化

Route::rule(‘路由表达式‘,‘路由地址‘,‘请求类型‘,‘路由参数(数组)‘,‘变量规则(数组)‘);

1.支持三种方式的url解析规则

2.路由只针对应用,不针对模块,因此路由的设置也是针对应用下面的所有模块。

3.如果有些模块不想使用路由   关闭后台模块,在后台入口文件添加下面这句话,写在

加载框架引导文件之后 否则报错

// 加载框架引导文件 require __DIR__ . ‘/../thinkphp/start.php‘;

//关闭admin模块下的路由 \think\App::route(false);

4、路由模式

a、普通模式

1.关闭路由,完全使用默认的PATH_INFO方式URL

2.形式:http://www.tp5.com/admin.php/Index/index

3.如何配置:

//是否开启路由

‘url_route_on’    => false,

//是否强制使用路由

‘url_route_must‘  => false,

b、混合模式

1.定义:开启路由,并使用路由定义+默认 PATH_INFO 方式的混合

2.如何设置

//是否开启路由

‘url_route_on’    => true,

//是否强制使用路由

‘url_route_must‘  => false,

c、强制模式

1.定义:

开启路由,并设置必须定义路由才能访问

2.如何设置

//是否开启路由

‘url_route_on’    => true,

//是否强制使用路由

‘url_route_must‘  =>true,

5、设置路由-动态单个注册

a、设置路由文件

application\route.php

b.、如何设置

fcecaa27ea5212ceb9bf034c36bfbf34.gif

//引入系统类 use think\Route; //定义路由规则

//设置了路由之后,就不能使用PATH_INFO模式访问了 //注册路由访问到index模块Index控制器index方法

Route::rule(‘/‘,‘index/Index/index‘);

//注册路由访问到index模块Index控制器test方法

Route::rule(‘test‘,‘index/Index/test‘);

fcecaa27ea5212ceb9bf034c36bfbf34.gif

c、路由的形式

1.静态地址路由

// 注册路由test  访问到Index模块index控制器test方法

Route::rule(‘test‘,‘index/Index/test‘);

2.给路由带参数

//注册带参数路由

//http://www.tp5.com/course/1   路由模式

//http://www.tp5.com/index/Index/course/id/1  普通模式

Route::rule(‘course/:id‘,‘index/Index/course‘);

//如果路由设置两个参数,必须带两个参数

Route::rule(‘time/:year/:mouth‘,‘index/Index/shijian‘);

3.可选参数路由

//http://www.tp5.com/time/2017

//http://www.tp5.com/time/2018/5

Route::rule(‘time/:year/[:mouth]‘,‘index/Index/shijian‘);

4、全动态路由(不建议使用)

Route::rule(‘:a/:b‘,‘index/Index/dongtai‘);

5.完全匹配路由

//http://www.tp5.com/wanquan 可以访问

//http"//www.tp5.com/wanquan/ada/asf/a/f 不可以访问

Route::rule(‘wanquan$‘,‘index/Index/wanquan‘);

6.路由额外带参数

Route::rule(‘test1‘,‘index/Index/test1?id=12&name=adasfds‘);

d、设置请求类型

1、tp中请求类型

get、post、put、delete

2、Route::rule()  默认支持所有请求类型

3、设置所有请求

fcecaa27ea5212ceb9bf034c36bfbf34.gif

//支持get请求 Route::rule(‘type‘,‘index/Index/type‘,‘get‘);

Route::get(‘type‘,‘index/Index/type‘); //支持post请求 Route::rule(‘type‘,‘index/Index/type‘,‘post‘);

Route::post(‘type‘,‘index/Index/type‘); //同时支持get和post Route::rule(‘type‘,‘index/Index/type‘,‘get|post‘); //支持所有请求 Route::rule(‘type‘,‘index/Index/type‘,‘*‘);

Route::any(‘type‘,‘index/Index/type‘); //支持put请求 Route::rule(‘type‘,‘index/Index/type‘,‘put‘);

Route::put(‘type‘,‘index/Index/type‘); //支持delete请求 Route::rule(‘type‘,‘index/Index/type‘,‘delete‘);

Route::delete(‘type‘,‘index/Index/type‘);

fcecaa27ea5212ceb9bf034c36bfbf34.gif

4、如何模拟put和delete请求

fcecaa27ea5212ceb9bf034c36bfbf34.gif

post 重要

**隐藏域重要

fcecaa27ea5212ceb9bf034c36bfbf34.gif

6、设置路由-动态批量注册

a、基本格式

Route::rule([ ‘路由规则1‘=>‘路由地址和参数‘,

‘路由规则2‘=>[‘路由地址和参数‘,‘匹配参数(数组)‘,‘变量规则(数组)‘] ... ],‘‘,‘请求类型‘,‘匹配参数(数组)‘,‘变量规则‘);

b、使用

Route::rule([ ‘test‘ => ‘index/Index/test‘,

‘course/:id‘ => ‘index/Index/course‘ ]);

Route::get([ ‘test‘ => ‘index/Index/test‘,

‘course/:id‘ => ‘index/Index/course‘ ]);

7、设置路由-配置文件批量注册

return [ ‘test‘ => ‘index/Index/test‘,

‘course/:id‘ => ‘index/Index/course‘ ];

8、变量规则

//设置路由参数id必须是数字,必须1到3位

Route::rule(‘course/:id‘,‘index/Index/course‘,‘get‘,[],["id" => "\d{1,3}"]);

9、路由参数

//路由参数method 请求方式必须是get

//路由参数ext 主要设置路由的后缀

Route::rule(‘course/:id‘,‘index/Index/course‘,‘get‘,[‘method‘=>‘get‘,‘ext‘=>‘html‘],["id" => "\d{1,3}"]);

ac722b77855676eab5319d543d5383ea.png

10、资源路由

a、后台功能

add页面、展示页面、删除功能、修改页面、修改功能、增加功能

a、声明资源路由

Route::resource(‘blog‘,‘index/Blog‘);

b、会自动注册七个路由规则

1dda1c2aafb939a01c21aac55c97dc23.png

11、设置快捷路由

a、声明

Route::controller(‘user‘,‘index/User‘);

b、使用:

fcecaa27ea5212ceb9bf034c36bfbf34.gif

namespace app\index\controller; class User { public function getInfo()

{

} public function getPhone()

{

} public function postInfo()

{

} public function putInfo()

{

} public function deleteInfo()

{

}

}

fcecaa27ea5212ceb9bf034c36bfbf34.gif

c、URL访问

get http://localhost/user/info get http://localhost/user/phone post http://localhost/user/info put http://localhost/user/info delete http://localhost/user/info

12、生成URL地址

a、系统类

use think\url

url::build(‘index/Index/index‘);

b、系统方法

url(‘index/Index/index‘);

c、使用

看手册详细介绍

原文:https://www.cnblogs.com/xiaogou/p/11660487.html



推荐阅读
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • PHPMailer邮件类邮件发送功能的使用教学及注意事项
    本文介绍了使用国外开源码PHPMailer邮件类实现邮件发送功能的简单教学,同时提供了一些注意事项。文章涵盖了字符集设置、发送HTML格式邮件、群发邮件以及避免类的重定义等方面的内容。此外,还提供了一些与PHP相关的资源和服务,如传奇手游游戏源码下载、vscode字体调整、数据恢复、Ubuntu实验环境搭建、北京爬虫市场、进阶PHP和SEO人员需注意的内容。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • JavaWeb中读取文件资源的路径问题及解决方法
    在JavaWeb开发中,读取文件资源的路径是一个常见的问题。本文介绍了使用绝对路径和相对路径两种方法来解决这个问题,并给出了相应的代码示例。同时,还讨论了使用绝对路径的优缺点,以及如何正确使用相对路径来读取文件。通过本文的学习,读者可以掌握在JavaWeb中正确找到和读取文件资源的方法。 ... [详细]
  • 本文讨论了在ASP中创建RazorFunctions.cshtml文件时出现的问题,即ASP.global_asax不存在于命名空间ASP中。文章提供了解决该问题的代码示例,并详细解释了代码中涉及的关键概念,如HttpContext、Request和RouteData等。通过阅读本文,读者可以了解如何解决该问题并理解相关的ASP概念。 ... [详细]
  • 使用这个技巧要达到的目标:一般来说,模型和控制器你都不会有相同的类名字。让我先创建一个取名为post的model。classPostextendsModel{}现在 ... [详细]
  • 实现jqueryfileupload文件上传带进度条效果的方法
    jQueryFileUpload是一个Jquery图片上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支 ... [详细]
author-avatar
louis
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有