找不到我复制到不同服务器的工作 Symfony 项目的 Symfony 4 路由

Symfony 4 route not found for a working Symfony project that I copied to a different server

我正在尝试将工作中的 Symfony 项目从一个环境复制到另一个环境。 (创建者目前无法帮助我)看起来我几乎成功了,直到我不得不检查 Symfony 路由页面。它给了我一个 404 NOT FOUND 页面。

我所做的是将整个项目从一个环境复制到另一个环境(我自己设置)。以下是我认为与此问题相关的文件。如果我需要显示不同的文件以找到解决方案,请告诉我。

host/(var/www/html/)project/public/ 页显示第 the Welcome to Symfony! 页。

其他 html 个页面是 运行。

导航到使用 Symfony 设置的页面 host/project/public/MyPage returns HTTP 404(未找到)错误页面。

/etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/

        <Directory "/var/www/html/project/public">
                AllowOverride All
                Order allow,deny
                Allow from All
                Require all granted
        </Directory>
...

MyController.php

<?php

namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\Session;

class MyController extends AbstractController
{
    /**
     * @Route("/MyPage")
     */
    public function SubmitBootstrapAction(LoggerInterface $logger)
    {
...

/config/routes.yaml

#index:
#    path: /
#    controller: App\Controller\DefaultController::index

我想重写引擎已关闭

选项 1: 旧样式,激活重写引擎添加重写规则

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

选项 2:推荐 作为 described in documentation,您不应再使用重写引擎。现在建议使用 FallbackResource。

<VirtualHost *:80>
    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/project/public
    DirectoryIndex /index.php

    <Directory /var/www/project/public>
        AllowOverride None
        Order Allow,Deny
        Allow from All

        FallbackResource /index.php   ###<==== Here
    </Directory>