我正试图将一个正在工作的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>