我目前有一个实时的Symfony2.4应用程序,它也链接到我们服务器上的一个目录(称为"指南"),该目录位于"web"文件夹下.此文件夹中的文件是使用外部程序自动生成的,由我们公司的其他部门生成普通的html文件.
最初我们将这些文件向公众开放,但是如果用户登录到应用程序,我们只想使它们可访问.我们已经设置了站点来处理登录过程等等,我只是无法弄清楚如何通过Symfony路由静态文件,以便我可以让它使用安全过程来检查用户是否有权查看文件.
我知道Symfony已经设置好,静态文件会自动提供,所以我修改了htaccess文件以包含这个:
凡是是一个文件,不是在"指南"目录应该只得到服务.
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} !/guides/
RewriteRule .? - [L]
Run Code Online (Sandbox Code Playgroud)
然后我尝试创建一个路径,可以捕获来自该目录的所有URL并通过一个特殊的控制器,我可以检查授权用户,如果不好则重定向到登录,或者如果好的话显示实际页面.
support_guides:
path: /guides/{the-rest}
defaults: { _controller: MillenniumSIMeevoSupportBundle:HelpGuide:show }
Run Code Online (Sandbox Code Playgroud)
htaccess似乎有用(我认为),因为它不会尝试直接提供页面,但现在我只是得到了Symfony 404页面.
我最近正在对我的Symfony 2站点进行更改,然后在站点上执行了清除缓存命令.之后当我回到网站时,页面都是空白的.
这是我跑的命令
app/console cache:clear --env=prod
Run Code Online (Sandbox Code Playgroud)
我听说它可能与缓存文件夹上的文件权限有关,但我不确定.我在根级别登录以便能够运行上面的命令运行因为我在用户级别登录时遇到"访问被拒绝"错误.
任何帮助/见解将不胜感激.