thinkphp 设置运行目录为/public后 404错误

简介: thinkphp 设置运行目录为/public后 404错误

thinkphp 设置运行目录为/public后 404错误
当你在 ThinkPHP 中设置了运行目录为 /public 后,可能会遇到 404 错误。这通常是因为 Web 服务器的配置问题导致的。以下是解决这个问题的几个步骤:

  1. 修改 .htaccess 文件
    如果你使用的是 Apache 服务器,需要确保 .htaccess 文件正确配置。在项目根目录下创建或修改 .htaccess 文件,内容如下:


RewriteEngine On
RewriteBase /public/

# 如果请求资源不存在,则交给 index.php 处理
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L]

  1. 修改 Nginx 配置文件
    如果你使用的是 Nginx 服务器,需要修改 Nginx 的配置文件。在 nginx.conf 或者站点配置文件中添加或修改以下内容:

server {
listen 80;
server_name yourdomain.com;

root /path/to/your/project/public;  # 指定项目的 public 目录

location / {
    try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;  # 根据实际 PHP 版本和配置修改
}

}

  1. 修改 ThinkPHP 配置
    确保 ThinkPHP 的配置文件中指定了正确的运行目录。在 config.php 文件中添加或修改以下内容:
    [kod.xiujiawang.com)
    [kod.acpline.com)
    [kod.aislong.com)
    [kod.ao54.com)
    [kod.buy47.com)
    [kod.dimsc.com)
    [kod.hnczf.com)
    [kod.lcgmyy.com)

return [
// 运行目录
'app_dir' => 'public',

// 应用基础路径
'base_path' => __DIR__ . '/../',

// 应用入口文件
'entry_file' => 'index.php',

];

  1. 重启 Web 服务器
    Apache:重启 Apache 服务。

sh

sudo service apache2 restart
Nginx:重启 Nginx 服务。

sh

sudo service nginx restart

  1. 测试访问
    在浏览器中访问你的网站,确保所有配置生效并且没有 404 错误。
    总结
    通过以上步骤,你可以解决 ThinkPHP 设置运行目录为 /public 后出现的 404 错误。确保 Web 服务器的配置正确,并且 ThinkPHP 的配置文件也进行了相应的修改。这样可以确保应用能够正常运行。
相关文章
|
PHP 开发工具
ThinkPHP6.0 发送阿里云短信
一、登录阿里云,注册短信服务 1.阿里云短信服务:dysms.console.aliyun.com/overview
2882 0
|
小程序
小程序中点击子元素事件而不触发父元素的点击事件
小程序中点击子元素事件而不触发父元素的点击事件
375 0
|
存储 缓存 NoSQL
Redis 服务器全方位介绍:从入门到核心原理
Redis是一款高性能内存键值数据库,支持字符串、哈希、列表等多种数据结构,广泛用于缓存、会话存储、排行榜及消息队列。其单线程事件循环架构保障高并发与低延迟,结合RDB和AOF持久化机制兼顾性能与数据安全。通过主从复制、哨兵及集群模式实现高可用与横向扩展,适用于现代应用的多样化场景。合理配置与优化可显著提升系统性能与稳定性。
583 0
|
小程序 前端开发 中间件
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
本文介绍了如何在ThinkPHP框架中配置跨域请求,使用了TP内置的跨域类`\think\middleware\AllowCrossDomain::class`。文章还讨论了小程序和web网页在跨域请求格式上的区别,并提供了解决方案,包括修改跨域中间件源码以支持`Origin`和`token`。此外,还介绍了微信小程序跨域请求的示例和web网页前端发送Axios跨域请求的请求拦截器配置。
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
|
4月前
|
算法 API 数据库
生鲜电商技术实践:基于保质期API的自动下架系统保障食品安全
基于保质期提醒API与自动化工作流,实现生鲜商品临期智能预警与自动下架。通过设定差异化预警阈值(如蔬菜2天、冷冻品7天),每日扫描数据库并触发下架指令,确保食品安全合规,降低损耗与客诉,提升运营效率。
322 0
|
Java 持续交付 Maven
Spring Boot程序的打包与运行:构建高效部署流程
构建高效的Spring Boot部署流程对于保障应用的快速、稳定上线至关重要。通过采用上述策略,您可以确保部署过程的自动化、可靠性和高效性,从而将专注点放在开发上面。无论是通过Maven的生命周期命令进行打包,还是通过容器技术对部署过程进行优化,选择正确的工具与实践是成功实现这一目标的关键。
555 2
|
JavaScript
vue 打印vue-print-nb
vue 打印vue-print-nb
914 0
|
前端开发 PHP
ThinkPHP6,视图的安装及模板渲染和变量赋值 view::fetch() ,view::assgin() ,助手函数
本文介绍了ThinkPHP6中视图的安装和使用,包括通过`composer`安装`topthink/think-view`,使用`view::fetch()`进行模板渲染和变量赋值,以及使用`view::assign()`进行全局模板变量赋值。还提到了助手函数作为`view::fetch()`和`view::assign()`的封装组合,但效率较低。
ThinkPHP6,视图的安装及模板渲染和变量赋值 view::fetch() ,view::assgin() ,助手函数
|
Docker 容器
docker设置国内镜像源
docker设置国内镜像源
40652 5
|
存储 JSON API
Transformers 4.37 中文文档(十一)(1)
Transformers 4.37 中文文档(十一)
400 1