MVC php 无法在我的共享 CPanel 上运行,但它可以在我的本地主机和来自 VPS 的另一个 CPanel 上运行

问题描述 投票:0回答:2

这是我第一次使用 PHP/MVC 架构并且

问题是错误 404。我正在使用带有 php 的 MVC 架构。

这个过程应该是这样的: 1.Router获取当前URL以及使用的方法

$\_SERVER\['REQUEST_URI'\] 
$\_SERVER\['REQUEST_METHOD'\]

2.路由器获取当前URL的特定函数。所述函数在 PUBLIC 中的 index.php 上定义为项目的所有 URL 3.路由器调用该函数。这些功能位于控制器中。

call_user_func

这只适用于主 URL(在 PUBLIC 的 index.php 中定义为“/”)。 每当我想访问任何其他 URL 时,都会收到 404 错误。就像服务器无法使用 VIEWS 访问文件夹一样。

但我知道它是有效的,因为 VIEW index.php 正在渲染 URL '/'。我尝试交换 URL 调用的函数,以查看类或其他任何内容是否有问题,但它也有效(例如:我从 URL '/' 调用函数“contact”,而不是函数“index”我得到了正确的“/contact”视图)

我确信我的项目正在我的本地主机上运行。 我什至将其部署在另一台 CPanel 上,它工作正常,区别在于另一个是 VPS,而有问题的是共享主机。

据我了解,问题应该是以下之一: -htaccess 文件 -php ini -作曲家自动加载不起作用

我的 php 版本是正确的,我的数据库工作正常。

我能解释我的问题吗?请发送帮助!

这是我在 PUBLIC 上的 Router 和 index.php 代码

路由器 index.php

php http-status-code-404 cpanel
2个回答
1
投票

没关系,我已经解决了 如果有像我这样的菜鸟遇到同样的问题...我用 htaccess 文件解决了

应该是这样的

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

它应该与你的index.php(PUBLIC文件夹)位于同一文件夹中


0
投票

我也面临着同样的问题,但无法解决。我无法访问其他文件。这是我的项目目录

project/
├── public/
│   ├── .htaccess
│   ├── index.php
│   └── ... (other public files)
├── views/
│   └── error_404.php
│   └── ... (other files)
├── controllers/
│   └── ... (controller files)
├── models/
│   └── ... (model files)
└── router.php

这是我的 htaccess 文件:

Options -Indexes
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
 
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]


    ErrorDocument 404 ../views/error_404.php
</IfModule>
© www.soinside.com 2019 - 2024. All rights reserved.