对于我复制到其他服务器的正在运行的Symfony项目,找不到Symfony 4路由



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

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

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

其他html页面正在运行。

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

/etc/apache2/站点可用/00-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 AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpFoundationSessionSession;
class MyController extends AbstractController
{
    /**
     * @Route("/MyPage")
     */
    public function SubmitBootstrapAction(LoggerInterface $logger)
    {
...

/config/routes.yaml

#index:
#    path: /
#    controller: AppControllerDefaultController::index

我想重写引擎已关闭

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

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

选项2:建议如文档中所述,您不应该再使用重写引擎。现在建议使用后备资源。

<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>

最新更新