【ThinkPHP学习】ThinkPHP的模块绑定与域名部署

Thinkphp dispatch派遣类分离出模块和操作 <?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK IT ] // +---------------------------------------------------------------------- 阅读详情

RT.

1:目的

我现在有一个项目,使用ThinkPHP开发。网站首页的地址是:

http://www.A.com/index.php/Home/Index/index.html

我现在需要达到的目标是,在访问A.com的时候,等价于访问http://www.A.com/index.php/Home/Index/index.html

2:环境介绍

我的环境是LAMP(Linux+Apache2+Mysql+PHP),使用框架是ThinkPHP 3.2.2版本。

3:思路介绍

3.1.设置服务器根目录为该项目文件夹;

我的服务器操作系统为ubuntu。根据查考,debian/ubuntu的apache2的配置文件长得比较奇葩,设置服务器默认访问的根目录,配置文件在/etc/apache2/sites-available/000-default.conf中,找到如下字段:

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/sx  //将该配置选项后面的路径修改为你的项目根目录
这样子通过A.com就能直接访问项目文件夹。当然,如果你的服务器只是用来给一个网站服务或者是有建多个虚拟机,可以将整个项目文件夹下的内容放在默认的Apache服务器目录下,就可以免去这一步了。

3.2.设置服务器默认访问的页面为index.php;

第二步,是修改服务器默认访问的页面。我们的Apache2默认访问的页面是index.html。

你的ThinkPHP无论是单入口文件(只有index.php)还是多入口文件(例如index.php负责Home模块,而admin.php负责Admin模块)。都可以通过这个设置去使得在访问A.com的时候自动定位的index.php或者admin.php中去。

找到/etc/apache2.conf文件,并找到如下字段:

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
        DirectoryIndex index.php   //设置的默认访问的页面,也可以是admin.php
</Directory>
这个通过这样设置,在访问A.com的时候就等于访问 A.com/index.php/

3.3.设置ThinkPHP框架默认访问的模块为Home;

到了这里,我们要设置默认访问的模块了。

参考ThinkPHP提供的官方文档:http://document.thinkphp.cn/manual_3_2.html#module_deploy

        我们在ThinkPHP的convention.conf配置文件中,一般是在下载的ThinkPHP/conf文件夹中,找到如下字段:

'MODULE_DENY_LIST'      =>  array('Common','Runtime'),
这个字段是决定了不能够从浏览器访问的的模块的名称,在下面我们加上允许访问的模块的名称,并设置好默认访问的模块名称:

     /*允许访问的模块列表*/
    'MODULE_ALLOW_LIST' => array('Home','Admin'),
    /*绑定默认访问的模块*/
    'DEFAULT_MODULE'    => 'Home',
通过这几步的设置,我们在访问A.com的时候等同于访问的地址是: A.com/index.php/Home/Index/index.html
由于ThinkPHP默认的的机制是访问模块下的Index控制器的index方法,如果我们需要被访问的控制是Index,方法是index,那么只需要设置到这一步即可,如果不是,则建议将需要被访问的控制器和方法命名为Index和index,或者,将我们需要被默认访问的控制器的名称绑定到上面默认访问的模块后,并将方法改成index:

‘DEFAULT_MODULE’   =>  'Home/Index'

3.4.检查配置跳转链接以及各项资源的引用地址正确性:

我们项目中资源的根目录如果被更改了,那么需要将所有之前引用的资源(特别是View文件夹下的JS和CS,图片等)的连接查看一边,按照实际的情况进行修改,否则会导致网站的样式,功能,以及内容的损坏。

同样,特别在一些文件上传并将链接写入数据库的位置,要修改提交到数据库中的连接模板。否则,会造成很大的麻烦。


好了,通过这样子4步的设置,我们就可以通过A.com来访问到我们的项目默认访问的首页A.com/index.php/Home/Index/index.html。

如果你想在平时的访问过程中,隐藏掉入口文件index.php。可以参考一下我的这篇文章:

【ThinkPHP学习】 Ubuntu apache2 URL重写配置过程

最后,做完这一些之后,你需要做的最后一步,也是第5步,是重启apache服务器:

sudo /etc/init.d/apache2 restart


ThinkPHP域名绑定不同模块实现方法 在ThinkPHP中,我们可以通过配置域名来实现不同模块的绑定,从而实现多个模块在同一个项目中的独立访问。这里配置了两个路由规则,将www.module1.com映射到Module1模块的Index控制器的index方法,将www.module2.com映射到Module2模块的Index控制器的index方法。这样,不同的域名访问时将会访问同一个项目,但可以通过配置来指定不同的模块。接下来,我们需要在ThinkPHP项目中进行模块路由的配置,以便根据不同的域名来访问不同的模块。希望本文对你有所帮助! 阅读详情

相关推荐

5分钟快速验证lvgl界面:VScode模拟器极简配置法(免环境变量版)

本文介绍了一种5分钟快速验证LVGL界面的极简配置方法,使用VSCode模拟器免环境变量配置,适合UI设计师和产品经理快速预览界面效果。通过预编译的SDL2库和配置好的VSCode工程模板,实现开箱即用的LVGL界面验证,大幅提升工作效率。

weixin_30790841的博客 315

thinkphp 框架 前后端用不同域名绑定

域名绑定到模块

qq_16746785的博客 800

关于华为高斯数据库出现Invalid or unsupported by client SCRAM mechanisms定位解决的过程

最近公司有个新项目使用的是高斯数据库,因为我们的项目是直接从别的项目组拿来的,配置都是已经配好的,但是在放到正式环境上之后出现报错。起初我们以为是测试和正式的版本不一致,但是结果是版本一致的。最后这个问题搞了我们几个小时,都没法解决。

Curtisjia的博客 3188

php域名绑定模块,ThinkPHP5.1 域名绑定模块

ThinkPHP5.1 域名绑定模块,域名,路由,绑定,在线留言,手机ThinkPHP5.1 域名绑定模块易采站长站,站长之家为您整理了ThinkPHP5.1 域名绑定模块的相关内容。如果你的网站需要在一个后台里面加两个网站的资料,那么你的 前台就会有四个模块,主域名,主域名手机端,次域名,次域名手机端,需要把主域名和次域名的模块分别绑定到不同的域名上,并且主域名和次域名的路由完全一致的情况下,你...

weixin_34779181的博客 386

硕士论文排版救星:用Mathtype一键搞定所有公式格式(附样式预设文件)

本文详细介绍了如何使用Mathtype的样式预设和批量格式化功能,快速统一硕士论文中的公式格式。通过创建标准样式预设文件和一键批量处理,解决公式字体、大小、间距不统一的问题,确保符合学术规范要求,大幅提升论文排版效率。

weixin_30772105的博客 943

从0开始部署基础的AlwaysOn

在这个快餐文化盛行的时代,应该没多少人真的会沉下心来看理论和具体步骤,加上我自己也需要一篇可以扩展的快速搭建环境的指引,所以特别写了这篇文章。 我们在这里要做的事情有以下几个:安装环境。包括虚拟机和网络配置等。安装Windows域、配置必要的账号密码及功能。搭建域环境并进行配置。安装配置Windows Server Failover Cluster(WSFC)。安装SQL Server。配置Alw

MVP黄钊吉(發糞塗牆) 7577

ThinkPhp子域名绑定控制器中方法

ThinkPhp3.2版本中可以将子域名和模块、控制器绑定,但不可以和控制器中方法绑定,既然ThinkPhp没有提供该方法,我们可以在index.php入口文件中根据域名绑定不同的控制器和方法来实现。

joyfixing的博客 5126

Excel VBA+Adobe Acrobat Pro PDF发票识别全流程(附避坑指南)

本文详细介绍了如何利用Excel VBA与Adobe Acrobat Pro的API接口,构建一套企业级PDF发票智能识别与处理系统。内容涵盖从环境配置、核心文本提取原理、数据解析清洗到工程化脚本设计的全流程,并针对密码区干扰、不征税发票等常见问题提供避坑指南,旨在帮助财务人员和开发者实现高效、精准的财务数据处理自动化。

weixin_29207439的博客 349

Thinkphp 部署/域名部署

域名部署 ThinkPHP支持模块(甚至可以包含控制器)的完整域名、子域名和IP部署功能 开启域名部署 无论是子域名还是IP部署,首先要在应用配置文件中开启APP_SUB_DOMAIN_DEPLOY,这是前提,然后配置域名部署规则APP_SUB_DOMAIN_RULES。 'APP_SUB_DOMAIN_DEPLOY' =&gt; 1, // 开启子域名或者IP配置 'APP_...

张默的博客 1870

zblog mysql数据库无法连接_ZBlog博客网站错误:MySQL数据库无法连接

前言前天搭建的博客网站,睡醒一觉起来网站挂逼了,其间无任何操作。主页都进不去,提示“MySQL数据库无法连接”,无论怎么刷新重启服务器都没用。最终从中午1点搞到凌晨2点,皇天不负有心人终于解决了。其实问题很简单,只是没这方面的经验,走了很多弯路。我本人并不是搞WEB的,搞这个博客纯碎就是玩玩罢了。处理这个问题的时候查了很久的资料,都是一些没太大意义的,无非就是让你改zb_user/c_option...

weixin_34691461的博客 2205

2025年CSP-X初赛真题及答案解析(江西)(完善程序第1题)

2025年CSP-X初赛真题及答案解析(江西)(完善程序第1题)

王老师青少年编程 715

thinkphp5 域名路由

本片博客的内容和thinkphp5.0完全开发手册中的差不多一样,所以内容我照搬,不过这里主要侧重如何配置实现。 ThinkPHP支持完整域名、子域名和IP部署的路由和绑定功能,同时还可以起到简化URL的作用。 要启用域名部署路由功能,首先需要开启 ‘url_domain_deploy’ => true 定义域名部署规则支持两种方式:动态注册和配置定义。 动态注册 可以在应用的公共文...

qq_42683219的博客 2108

一条 POST 创建整棵业务对象树,SAP Gateway Deep Create 的运行机制与 ABAP 实现

SAPUI5 的 OData V2 Model 支持 Deep Create,可以为一个新建的 transient parent context 创建 Navigation Property 下的 subentity,并把这些子实体的数据合并进 Root Entity 对应的 OData 请求 Payload。销售组织是否合法,客户是否允许下单,物料是否存在,销售区域是否匹配,计量单位是否正确,项目类别如何确定,定价是否成功,合作伙伴如何派生,交货工厂如何确定,这些都可能在一次创建过程中被触发。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 149

thinkphp自动跳到首页 --开启域名部署/子域名部署/泛域名部署/IP访问部署

thinkphp开启域名部署/子域名部署/泛域名部署/IP访问部署         ThinkPHP支持模块(甚至可以包含控制器)的完整域名、子域名和IP部署功能,让你的模块变得更加灵活,模块绑定到域名或者IP后,URL地址中的模块名称就可以省略了,所以还可以起到简化URL的作用。                  无论是子域名还是IP部署,首先要在应用配置文件中开启APP_SU

历史的旋律 的博客 2582

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

thinkphp开启域名部署/子域名部署/泛域名部署/IP访问部署

thinkphp开启域名部署/子域名部署/泛域名部署/IP访问部署 thinkphp开启域名部署/子域名部署/泛域名部署/IP访问部署 ThinkPHP支持模块(甚至可以包含控制器)的完整域名、子域名和IP部署功能,让你的模块变得更加灵活,模块绑定到域名或者IP后,UR...

choudangxie6852的博客 502

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

php 部署 域名解析,域名部署 · ThinkPHP 5 简明开发手册 · 看云

## 概述在ThinkPHP5中,可以很轻松的实现将模块部署到某个域名规则(包括完整域名、二级域名、三级域名和泛域名),而不需要分开不同的应用入口文件。要使用域名部署,首先需要在应用的公共配置文件中开启~~~'url_domain_deploy'=>true,~~~## 域名部署开启域名部署后,可以在应用配置文件中设置`url_domain_rules`或者通过下面的方法动态设置。### 注...

weixin_32242475的博客 494

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ThinkPHP中泛域名部署的实现方法

而使用泛域名部署,则只需要将所有子域名指向同一个文件夹即可,每个子域名内的网站应用程序可以共享同一套代码和数据。对于需要部署多个网站的开发者来说,站群架构是一种广泛采用的设计模式,而泛域名部署则是站群架构中比较常见的实现方式之一,在这篇文章中,我们将介绍如何在ThinkPHP框架中实现泛域名部署站群,需要的朋友可以参考下。无论是子域名还是IP部署,首先要在应用配置文件中开启APP_SUB_DOMAIN_DEPLOY,这是前提,然后配置域名部署规则APP_SUB_DOMAIN_RULES。

Oona_01的博客 298

ThinkPHP6多应用配置全攻略:如何用二级域名访问不同模块?

本文详细解析了ThinkPHP6多应用架构下,如何通过配置二级域名实现不同业务模块的独立访问。核心步骤包括安装多应用扩展、配置域名绑定与路由,并结合服务器部署实战,帮助开发者构建清晰、可维护的模块化项目结构,有效解决路由冲突与团队协作问题。

v6b7n8m9q0的博客 646

43thinkphp 域名路由

//域名路由 //1.域名+闭包方式 Route::domain('blog',function (){ Route::rule('read/:id','blog222/read'); Route::rule('cr','blog222/create'); }); //2.绑定到模块 Route::domain('blog','blog222'); //3.泛二级域名部署 Route::domain('*',function (){ Route::rule('read/:id',

BowenXu11的博客 248

php 实现域名路由器,域名路由 · ThinkPHP5.0完全开发手册 · 看云

ThinkPHP支持完整域名、子域名和IP部署的路由和绑定功能,同时还可以起到简化URL的作用。要启用域名部署路由功能,首先需要开启:~~~'url_domain_deploy' => true~~~定义域名部署规则支持两种方式:动态注册和配置定义。## 动态注册可以在应用的公共文件或者配置文件中动态注册域名部署规则,例如:~~~// blog子域名绑定到blog模块Route::doma...

weixin_34039159的博客 510

ThinkPHP6多应用实战:从单模块到多模块的平滑升级指南(含域名绑定技巧)

本文详细介绍了ThinkPHP6从单模块升级到多模块架构的完整指南,包括多应用项目的核心价值、平滑迁移步骤、路由优化及多域名访问配置技巧。通过实战案例展示如何实现域名绑定和共享代码管理,帮助开发者提升项目可维护性和开发效率。

weixin_30872157的博客 385

nginx配置thinkphp站点子目录部署和绑定到子域名

在阿里云买了个虚拟主机,正常虚拟主机只能部署一个站点,所以需要一些技术手段实现多站点部署和绑定多域名。方式1实用性不强,最后使用的是在nginx上进行判断跳转。

TM 1496

TP5框架模块绑定二级域名

application\config.php 修改 url_domain_deploy 为 true 'url_domain_deploy' => true application\route.php 注册域名部署规则 <?php use think\Route; //其中m是子域名,而mobile是模块名 //这段表示任何以m为子域名的访问,...

weixin_30402343的博客 951

ThinkPHP6.0 多应用模式 部署 Layuiadmin 单页版

TP6.0中的路由省略应用名只能用入口文件绑定应用 和 域名绑定应用,经过测试,最后得出域名绑定应用是最合适的部署方式。如果有更好的部署方案,欢迎分享。QQ:23426945 1. 下载TP6.0,引入多应用模式扩展 composer create-project topthink/think tp6 composer require topthink/think-multi-app 2. 配置多个虚拟域名(多个域名用于域名绑定应用) apache虚拟主机配置文件:conf/extra/httpd.

辰风沐阳 1919
上一篇: 解决安装WordPress主题及插件需要输入FTP问题
下一篇: Apache2配置深入学习
GiantChan
博客等级 码龄16年 76粉丝 108原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值