Silex根文件夹文件无法从url访问

时间:2018-06-26 09:39:19

标签: php routes silex

我有一个使用Silex的网站。

我已经在根文件夹中上传了一些文件,例如robots.txt,并没有上传推送通知sdk

当我尝试使用url访问该文件时出现问题: 尝试从Chrome浏览器访问时,domain.com/robots.txt出现错误

找不到GET /robot.txt

的路线
  

致命错误:未捕获的异常    'Symfony \ Component \ Routing \ Exception \ RouteNotFoundException'与    消息“无法为命名路由“”生成这样的路由的URL    不存在。'在    /home/path/domain.com/vendor/symfony/routing/Symfony/Component/Routing/Generator/UrlGenerator.php:134    堆栈跟踪:#0    /home/path/domain.com/vendor/symfony/twig-bridge/Symfony/Bridge/Twig/Extension/RoutingExtension.php(45):    Symfony \ Component \ Routing \ Generator \ UrlGenerator-> generate(NULL,NULL,    错误)#1    /home/path/domain.com/data/twig/fe/bb/cd3e9843c1ef02ee591d59cfb1afd51eb5cd52af42e38573c035f7ef4128.php(146):    Symfony \ Bridge \ Twig \ Extension \ RoutingExtension-> getPath(NULL,NULL)#2    /home/path/domain.com/vendor/twig/twig/lib/Twig/Template.php(276):    __TwigTemplate_febbcd3e9843c1ef02ee591d59cfb1afd51eb5cd52af42e38573c035f7ef4128-doDisplay(Array,    阵列)#3    /home/path/domain.com/vendor/twig/twig/lib/Twig/Template.php(250):    Twig_Template-> displayWithErrorHandling(Array,Array)#4    / home / path / domain在    /home/path/domain.com/vendor/twig/twig/lib/Twig/Template.php在线    291

1 个答案:

答案 0 :(得分:0)

当您说出根文件夹时,是指public_html文件夹,还是包含诸如“模板”和“ src”之类的文件夹的文件夹?

当Silex尝试处理模板文档时,实际上会引发“找不到为'GET /robot.txt'的路由”之后的大型php错误。我猜测您的silex安装中的错误模板未正确设置。

如果robots.txt文件位于可公开访问的箔纸中,则不需要Silex控制器来提供文件,但是您确实需要将网络服务器配置为提供真实文件,然后再尝试将请求传递给index.php

这里https://silex.symfony.com/index.php/doc/2.0/web_servers.html

有一些出色的配置

对于Apache,相关位是

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

对于nginx,相关位是

try_files $uri /index.php$is_args$args;

这些是配置的一部分,上面写着“检查此URL是否确实有文件,如果没有,则使用index.php”