thinkphp5学习笔记,不断更新

本文详细介绍了ThinkPHP5框架中路由失效的解决方法,包括服务器部署后的路由配置、地址中添加index.php的方法、Apache环境下隐藏index.php的技巧,以及入口文件不在public目录下时的模板替换问题解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题目录:

  1. 项目放置到服务器后出现路由失效问题
  2. 如何给地址添加index.php
  3. apache下隐藏 index.php
  4. 入口文件不在public下时,模板替换无效问题

问题0:首次下载tp5后修改访问路径

默认访问方式是localhost/public

修改后直接访问localhost就行

方法:

1,复制public下的index.php和htaccess文件到根目录,修改index.php的引入文件路径如下

define('APP_PATH', __DIR__ . '/application/');
// 加载框架引导文件
require __DIR__ . '/thinkphp/start.php';

注意:首次下载框架的index.php文件没继承控制器,记住继承。还需要在rute文件中声明方法路由 ,

'login'=>'index/Index/checkphoneishave',

问题1:项目放置到服务器后出现路由失效问题

解决:在宝塔中的伪静态设置里设置

location / {
    if (!-e $request_filename){
        rewrite  ^(.*)$  /index.php?s=$1  last;   break;
    }
}

没使用宝塔的就在Nginx.conf添加此设置

问题2.如何给地址添加index.php

解决:在指定的控制器中加入 

Url::root('/yikehao/index.php');

记得引入  use think\Url;

问题3:apache下隐藏 index.php

 在htaccess文件下添加如下代码

<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
</IfModule>

问题4: 入口文件不在public下时,模板替换无效问题

修改thinkPHP下的view类。所在路径/thinkphp/library/think/View.php,在__construct__方法中的$baseReplace中修改默认路径,加上public即可。如图。修改后删除runtime文件再刷新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

itxiaolong3

打赏可以,但别打我就行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值