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 的配置文件也进行了相应的修改。这样可以确保应用能够正常运行。
相关文章
|
2月前
|
人工智能 JavaScript PHP
Laravel + Vue 免费可商用 PHP 管理后台 CatchAdmin V5.3.0 发布:支持 AI Agent 开发
CatchAdmin V5.3.0 是基于 Laravel 13 + Vue3 的免费可商用后台框架,支持企业级权限、动态路由、代码生成等;本次重磅升级AI开发体验,内置AGENTS指引、9大AI Skills、多平台兼容及Context7实时文档,大幅提升后台开发效率。(239字)
291 1
Laravel + Vue 免费可商用 PHP 管理后台 CatchAdmin V5.3.0 发布:支持 AI Agent 开发
|
PHP 开发工具
ThinkPHP6.0 发送阿里云短信
一、登录阿里云,注册短信服务 1.阿里云短信服务:dysms.console.aliyun.com/overview
3070 0
|
传感器 小程序
微信小程序新版隐私协议弹窗实现最新版
微信小程序新版隐私协议弹窗实现最新版
3875 1
|
11月前
|
Linux 虚拟化 iOS开发
macOS Ventura 13.7.7 (22H722) Boot ISO 原版可引导镜像下载
macOS Ventura 13.7.7 (22H722) Boot ISO 原版可引导镜像下载
5293 0
macOS Ventura 13.7.7 (22H722) Boot ISO 原版可引导镜像下载
|
小程序 前端开发 中间件
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
本文介绍了如何在ThinkPHP框架中配置跨域请求,使用了TP内置的跨域类`\think\middleware\AllowCrossDomain::class`。文章还讨论了小程序和web网页在跨域请求格式上的区别,并提供了解决方案,包括修改跨域中间件源码以支持`Origin`和`token`。此外,还介绍了微信小程序跨域请求的示例和web网页前端发送Axios跨域请求的请求拦截器配置。
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
Java 持续交付 Maven
Spring Boot程序的打包与运行:构建高效部署流程
构建高效的Spring Boot部署流程对于保障应用的快速、稳定上线至关重要。通过采用上述策略,您可以确保部署过程的自动化、可靠性和高效性,从而将专注点放在开发上面。无论是通过Maven的生命周期命令进行打包,还是通过容器技术对部署过程进行优化,选择正确的工具与实践是成功实现这一目标的关键。
672 2
|
存储 对象存储
【阿里云OSS】You have no right to access this object because of bucket acl.
【阿里云OSS】You have no right to access this object because of bucket acl.
21763 1
【阿里云OSS】You have no right to access this object because of bucket acl.