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月前
|
Oracle Java 关系型数据库
简单记录在Linux上安装JDK环境的步骤,以及解决运行Java程序时出现Error Could not find or load main class XXX问题
本文记录了在Linux系统上安装JDK环境的步骤,并提供了解决运行Java程序时出现的"Error Could not find or load main class XXX"问题的方案,主要是通过重新配置和刷新JDK环境变量来解决。
85 0
|
5月前
|
移动开发 前端开发 Java
STS里的java 工程项目名称修改和目录设置成源代码
STS里的java 工程项目名称修改和目录设置成源代码
41 0
php案例:用代码的方式创建目录+文件+写入数据(都由你定)
php案例:用代码的方式创建目录+文件+写入数据(都由你定)
php案例:用代码的方式创建目录+文件+写入数据(都由你定)
|
PHP
php开发实战分析(4):php调用封装函数包含文件路径自适应不同目录的解决方案($_SERVER[‘DOCUMENT_ROOT‘]与__DIR__魔术常量)
php开发实战分析(4):php调用封装函数包含文件路径自适应不同目录的解决方案($_SERVER[‘DOCUMENT_ROOT‘]与__DIR__魔术常量)
171 0
|
PHP
PHP 检查目录是否存在, 不存在就创建
PHP 检查目录是否存在, 不存在就创建
80 0
|
应用服务中间件
如何修改项目的访问路径context-root?
如何修改项目的访问路径context-root?
93 0
如何修改项目的访问路径context-root?
|
安全 应用服务中间件 PHP
TP5.0.20 - TP5更改网站目录为/public 后运行出错解决
当程序要使用例如fopen()或file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外,程序将拒绝打开。 本指令不受安全模式打开或关闭的影响。
305 0
关于 Qt在win上“启动程序失败,路径或者权限错误"无法运行的16位程序 的解决方法
关于 Qt在win上“启动程序失败,路径或者权限错误"无法运行的16位程序 的解决方法
关于 Qt在win上“启动程序失败,路径或者权限错误"无法运行的16位程序 的解决方法
|
Java
classPath 【项目编译之后的输出路径】字节码的路径,默认是生成在bin目录下
classPath 【项目编译之后的输出路径】字节码的路径,默认是生成在bin目录下
176 0
classPath 【项目编译之后的输出路径】字节码的路径,默认是生成在bin目录下
|
数据库
代码修改后运行结果同修改之前结果一样
今天在做机房收费系统过程中,因为命名规范有些问题,需要将一些数据库表名重新命名,出现了这个问题: 问题描述(环境:VisualStudio2013 ;框架:.Net Framework4.5 ;语言:VB.NET):修改代码之前,数据库查询语句cmdText中的表名为“T_UserInfo”,修改之后,把表名修改为“T_User”(当然数据库中的表名同样修改为“T_User”),运行出错。用Try……Catch获取异常,异常提示“对象名T_UserInfo”无效。
代码修改后运行结果同修改之前结果一样