我是Symfony的新手,我遇到了一个问题,我的路由返回404错误。在我的开发环境中,一切都很好,但我不知道如何在prod服务器上部署我的项目。我可能在什么地方漏了一步。
这是我的一个控制器名为HomeController:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAnnotationRoute;
class HomeController extends AbstractController
{
#[Route('/', name: 'home')]
public function index(): Response
{
return $this->render('home/index.html.twig');
}
#[Route('/pc', name: 'home_pc')]
public function pc(): Response
{
return $this->render('home/pc.html.twig');
}
当我执行以下命令php bin/console debug:router --show-controllers
。控制台输出以下内容,所以我猜Symfony知道我的不同路由。
--------- -------- -------- ------ ------ ----------------------------------------
Name Method Scheme Host Path Controller
--------- -------- -------- ------ ------ ----------------------------------------
home ANY ANY ANY / AppControllerHomeController::index()
home_pc ANY ANY ANY /pc AppControllerHomeController::pc()
--------- -------- -------- ------ ------ ----------------------------------------
然后,当我尝试访问mywebsite.com/pc
时,例如,它只给我一个空白页和404错误。
尝试将。htaccess内容放到public_html目录
RewriteEngine On
RewriteCond %{THE_REQUEST} /public/([^s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]
RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
即使它工作,也不应该这样做,所以把它看作是一个临时解决方案