【问题标题】:how to route symfony urls and remove front controller from url如何路由 symfony url 并从 url 中删除前端控制器
【发布时间】:2021-03-05 14:47:30
【问题描述】:

我尝试了一些方法来路由我的网址

rootdirectory/src/Simplex/app.php
require __DIR__.'/../vendor/autoload.php';
use Symfony\Component\Routing\Route;
use Symfony\Component\Routing\RouteCollection;

$routes = new RouteCollection();

$routes->add('ip',
          new Route('/ip',
                [
                    'IPAddress'   => "52.77.50.64",
                    '_controller' => 'Controller\Controller::getIPResponse',
                ]
            )
        );
$routes->add('home',
          new Route('/',
                [
                    'IPAddress'   => "52.77.50.64",
                    '_controller' => 'Controller\Controller::getIPResponse',
                ]
            )
        );

rootdirectory/front.php
require __DIR__.'/vendor/autoload.php';

use Symfony\Component\HttpFoundation\Request;

$globals = (Request::createFromGlobals())->getPathInfo();

$request = Request::create($globals);

$routes    = include __DIR__ . '/src/app.php';

$container = include __DIR__ . '/src/container.php';

$response  = $container->get('framework')->handle($request);

$response->send();

当我尝试访问 myDomain.com/front.php/ip 时它可以工作,但是当我尝试使用 myDomain.com/ip 时它不起作用。

我还处理了我的 .conf 文件,它指向我的前端控制器。 即,如果我去 myDomain.com/ 它可以工作。

我还检查了 symfony 路由文档,但我认为他们没有为此提供解决方案。

我没用过 .htaccess 文件

【问题讨论】:

  • 这是什么 Symfony?另外,什么是“我的 .conf 文件”?至于你的问题,我认为你必须利用 Apache 的 mod rewrite 来获得没有前端控制器文件名的“nice urls”。

标签: php apache symfony routes


【解决方案1】:

解决方案在于 xyz.conf 文件。 我使用了 fallbackresources /front.php 并且效果很好。类似于下面的代码

<VirtualHost *:80>
    ServerName foo.example.com
    DocumentRoot /var/www/html

    DirectoryIndex index.php
    FallbackResource /index.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    相关资源
    最近更新 更多