php - 找不到我复制到不同服务器的工作 Symfony 项目的 Symfony 4 路由
问题描述
我正在尝试将工作中的 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
解决方案
我猜重写引擎已经关闭
选项1:旧样式,激活重写引擎添加重写规则
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
选项 2:推荐 如文档中所述,您不应再使用重写引擎。现在建议使用 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>
推荐阅读
- python - Pandas - 使用元组列表过滤数据框
- javascript - 谷歌脚本 API 日历/谷歌表格;如何将日历导出到带有来宾(姓名,电子邮件)的谷歌表格
- java - 在融合存储库中找不到 kafka 库
- python - from .cv2 import * ImportError: DLL load failed: 找不到指定的模块
- javascript - 字符串值未在 Highcharts 中呈现
- html - Angular 6 - 将编译后创建的 HTML 绑定到点击事件
- css - CSS 动画与 Google Chrome 中的 !important 冲突
- angular - 将 monaco-editor 与 Angular 6.2 应用程序集成
- javascript - 在网页上显示来自本地 json 文件的数据
- meteor - 如何发布文档 ID?