我有一个我继承的网站。它已被移至新服务器,现在网站的管理部分无法正常工作。当我点击链接时,我得到一个 403。
我的浏览器上的错误消息
Forbidden
You don't have permission to access /admin.php/main/index on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
似乎 ErrorDocument 是一个 symfony 函数,所以我想这个错误与 Apache 无关。
在 web 文件夹中,有一个 admin.php 和 admin_dev.php。
管理员.php
<?php
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('admin', 'prod', false);
sfContext::createInstance($configuration)->dispatch();
admin_dev.php
<?php
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('admin', 'dev', true);
sfContext::createInstance($configuration)->dispatch();
如您所见,唯一的区别是环境名称(“prod”与“dev”,最后一个值用于调试(根据http://www.symfony-project.org/api/1_1/sfProjectConfiguration#method_getapplicationconfiguration) .
我将 admin_dev.php 的内容复制到了 admin.php。并且刷新了我的管理页面和 403 消失了,尽管顶部有开发工具栏。我将“dev”更改为“prod”并将调试打开,然后再次刷新我的页面,这次我得到了 403。
我查看了 settings.yml 并将 dev 部分的内容复制到 prod 部分。
但这并没有做任何事情。刷新页面后仍然得到403。
这是 settings.yml 的新内容(您可以看到我注释掉的 prod 之前的设置)。
设置.yml
# You can find more information about this file on the symfony website:
# http://www.symfony-project.org/reference/1_4/en/04-Settings
# .settings:
# no_script_name: false
# logging_enabled: false
prod:
# .settings:
# no_script_name: false
# logging_enabled: false
.settings:
error_reporting: <?php echo (E_ALL | E_STRICT)."\n" ?>
web_debug: true
cache: false
no_script_name: false
etag: false
dev:
.settings:
error_reporting: <?php echo (E_ALL | E_STRICT)."\n" ?>
web_debug: true
cache: false
no_script_name: false
etag: false
test:
.settings:
error_reporting: <?php echo ((E_ALL | E_STRICT) ^ E_NOTICE)."\n" ?>
cache: false
web_debug: false
no_script_name: false
etag: false
all:
.settings:
# Enable sfGuard
enabled_modules: [default, sfGuardGroup, sfGuardUser, sfGuardPermission, sfGuardAuth]
# Form security secret (CSRF protection)
csrf_secret: 10fee9ab83d0083fb244e5e087afab5fe684cb64
login_module: sfGuardAuth
login_action: signin
secure_module: sfGuardAuth
secure_action: secure
# Output escaping settings
escaping_strategy: true
escaping_method: ESC_SPECIALCHARS
# Enable the database manager
use_database: true
每次我更改服务器上的文件时,我都会通过 symfony cc 清除缓存。
有什么想法可能是错的吗?