1

我有一个我继承的网站。它已被移至新服务器,现在网站的管理部分无法正常工作。当我点击链接时,我得到一个 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 清除缓存。

有什么想法可能是错的吗?

4

0 回答 0