我的Symfony路线投了404?

时间:2018-03-11 19:57:38

标签: php symfony model-view-controller routing symfony4

我试图重新开发,试图在GoDaddy的共享托管服务器上设置Symfony。

我正在阅读Symfony 4的教程(这里:http://symfony.com/doc/current/page_creation.html),但URL.co.uk/lucky/number投掷的是404。

我将完全相同的URL路由设置为/(而不是lucky / number),并且工作正常。

routes.yaml和注释都会出现此问题。

<?php

namespace App\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;

class ArticleController

{
    /**
     * @Route("/")
     */
    public function homepage()
    {
        return new Response('OMG! My new first page already! ');
    }

    /**
     * @Route("/news")
     */
    public function news()
    {
        return new Response('This must be news?');
    }

}

例如,以上内容适用于/,但是/ news我有404错误。

这可能是.htaccess的问题吗?我的根本没有。

事实证明,使用上面的代码,URL.co.uk/index.php/news工作得很好。显然我不想要这个,但我希望它有助于深究它......

3 个答案:

答案 0 :(得分:2)

使用与此链接相同的代码将.htaccess安装到根目录中:

https://github.com/symfony/recipes-contrib/blob/master/symfony/apache-pack/1.0/public/.htaccess

谢谢。

答案 1 :(得分:0)

首先安装composer require annotations

然后您正在使用其他课程Route

更改

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

为:

use Symfony\Component\Routing\Annotation\Route;

最后检查你的路线:

php bin/console debug:router

答案 2 :(得分:0)

symfony 4在公用文件夹中不再有.htaccess文件。所以没有重写规则。您必须按照文档中的说明配置您的vhost:https://symfony.com/doc/master/setup/web_server_configuration.html

如果您无权访问vhost文件,仍可以在.htaccess文件中对其进行配置

我的vhost文件的摘录:

{
    loader: 'file-loader',
    test: /\.(png|jpg|gif)$/,
    options: {
       name: '/images/[name].[ext]'
    }
}