Symfony2:找不到 "GET /sitemap.xml" 的路由

Symfony2: No route found for "GET /sitemap.xml"

当我请求 sitemap.xml 时,我得到 No route found for "GET /sitemap.xml"。我需要从 /web 文件夹提供 sitemap.xml。所以出于某些原因 Symfony 开始寻找路由。我认为 config.yml 搞砸了。我正在使用 FOSRestBundle,它工作正常但可能会干扰路由。

来自config.yml的相关部分:

framework:
    translator: { fallback: en }
    secret:          %secret%
    router:
        resource: "%kernel.root_dir%/config/routing.yml"
        strict_requirements: ~
    form:            ~
    csrf_protection:
        enabled:        false
    validation:      { enable_annotations: true }
    templating:
        engines: ['twig']
        #assets_version: SomeVersionScheme
    default_locale:  "%locale%"
    trusted_proxies: ~
    session:
        save_path: %kernel.root_dir%/var/sessions
    fragments:       ~
fos_rest:
    cache_dir:      %kernel.cache_dir%/fos_rest
    routing_loader:
        default_format: json
    service:
        templating: templating
        serializer: jms_serializer.serializer
    serializer:
        serialize_null: false
    param_fetcher_listener: force
    body_listener: true
    body_converter:
        enabled: true
    format_listener:
        rules:
            - { path: '^/api', fallback_format: json } 
            - { path: '^/', priorities: [ 'html', '*/*'], fallback_format: html, prefer_extension: true }
    view:
        default_engine: twig
        formats:
            json: true
        view_response_listener: forcebundle
    unauthorized_challenge: "" 
    access_denied_listener:
        json: true    
    exception:
        codes:
            'Symfony\Component\Routing\Exception\ResourceNotFoundException': 404
        messages:
            'Symfony\Component\Routing\Exception\ResourceNotFoundException': true
            'Symfony\Component\HttpKernel\Exception\HttpException': true

没有。这里的问题出在您的 .htaccess 或类似的重写机制中。

Symfony 附带的默认 .htaccess 包含以下规则:

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]

这意味着,"if a an actual file exists, just serve it"。在您的情况下,由于某些原因未应用此规则,因此所有内容都传递给 app.php 和 Symfony 路由,但 Symfony 没有 /sitemap.xml 路由,因此出现 404 错误。