【问题标题】:Symfony 4 route not found for a working Symfony project that I copied to a different server我复制到另一台服务器的工作 Symfony 项目找不到 Symfony 4 路由
【发布时间】:2020-07-23 07:14:28
【问题描述】:

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

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

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

其他html 页面正在运行。

导航到使用 Symfony host/project/public/MyPage 设置的页面会返回 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

【问题讨论】:

  • apache2 mod rewrite 是否启用?
  • 哇,这实际上使路由工作。 sudo a2enmod rewrite 启用了重写模块,现在我看到 PHP 错误。
  • 为了提高性能,你应该使用 FallbackResource 而不是 mod rewrite。 :-)

标签: php symfony routes apache2


【解决方案1】:

我猜重写引擎已经关闭

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-29
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2013-12-20
    相关资源
    最近更新 更多