php - 我的 Symfony 路由抛出 404?

标签 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 路由设置为/(而不是幸运/数字),它工作正常。

两个 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工作得很好。显然我不想要这个,但我希望它有助于深入了解它......

最佳答案

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

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

有我的 vhost 文件的摘录:

DocumentRoot /var/www/html/public/

    <Directory /var/www/html/public/>
        Options FollowSymlinks
        AllowOverride None
        Order Allow,Deny
        Allow from All

        <IfModule mod_rewrite.c>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ index.php [QSA,L]
            RewriteCond %{HTTP:Authorization} ^(.*)
            RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
        </IfModule>

    </Directory>

关于php - 我的 Symfony 路由抛出 404?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49224452/

相关文章:

php - javascript捕获并显示php变量

php - Yii-Active Record 以字符串形式返回特定列的平均结果

Vagrant + Docker 上的 Symfony 2 应用程序

php - 在 Controller 测试中覆盖 Symfony 3.3 容器服务

model-view-controller - MVC 中的模型到底是什么

javascript - 如何使输入成为固定文本

php - 统计调用数据库的结果

php - 在 PHP 5.2 中,为什么在同一行实例化一个类并调用一个方法是无效的?

symfony - 从表单 Symfony2 的更新过程中排除实体字段

python - 如何使用 Django 创建三联表