微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

缓存 – Symfony2 app.php有效,但不适用app_dev.php

我已将我的Symfony2项目部署到我的开发服务器,并希望运行开发环境.

如果我使用/app.PHP,一切运行正常,但如果我尝试app_dev.PHP,我会收到404错误

在此服务器上找不到请求的URL /app_dev.PHP.

下面是我的.htaccess文件的副本:

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    # Explicitly disable rewriting for front controllers
    RewriteRule ^app_dev.PHP - [L]
    RewriteRule ^app.PHP - [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    # Change below before deploying to production
    #RewriteRule ^(.*)$app.PHP [QSA,L]
    RewriteRule ^(.*)$app_dev.PHP [QSA,L]
</IfModule>

它在我的本地机器上工作正常,而不是在我的开发服务器上,任何想法为什么?

我的/ cache和/ logs目录都具有777权限,并由www-data拥有:

drwxrwxrwx+ 4 www-data www-data 4096 Mar 15 11:46 cache
drwxrwxrwx+ 2 www-data www-data 4096 Mar 15 11:05 logs

这些目录中的dev和prod完全相同.

解决方法

检查你的app_dev.PHP是否有限制拒绝从服务器本身以外的其他计算机访问开发环境.

这是出于安全原因,如果您部署到生产服务器并且用户可以访问dev env,那么他/她可以了解您的应用程序.

// This check prevents access to debug front controllers that are deployed by accident to production servers.
// Feel free to remove this,extend it,or make something more sophisticated.
if (isset($_SERVER['HTTP_CLIENT_IP'])
    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    || !in_array(@$_SERVER['REMOTE_ADDR'],array('127.0.0.1','fe80::1','::1'))
) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}

你必须将你的IP添加到该阵列,或删除整个(我不推荐).

永远记得将dev变量传递给AppKernel. $kernel = new AppKernel(‘dev’,true);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐