当我请求sitemap.xml
时,我正在No route found for "GET /sitemap.xml"
。我需要从sitemap.xml
文件夹中提供/web
。所以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
答案 0 :(得分:4)
不。这里的问题在于您的.htaccess
或类似的重写机制。
Symfony附带的默认.htaccess
包含以下规则:
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
表示“如果存在实际文件,则只提供服务”。在您的情况下,由于某些原因不应用此规则,因此所有内容都会传递到app.php
和Symfony路由,但Symfony没有/sitemap.xml
路由,因此404错误。