找不到我复制到不同服务器的工作 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>
我正在尝试将工作中的 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>