A
A
Anton2017-06-14 13:51:54
Yii
Anton, 2017-06-14 13:51:54

When redirecting from the controller, "web" gets into the link. How to remove "web"?

I call the following method in the controller:

return Yii::$app->getResponse()->redirect(['/manager/index/']);

The redirect occurs, but the final link looks like this: If you follow the link, specifying the controller and action ( site.com/manager/index), then the routing works correctly, there is no "web" in the address. How to fix it? web.php content:
http://site.com/web/manager/
<?php

$params = require(__DIR__ . '/params.php');

$config = [
    'id' => 'basic',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'components' => [
        'request' => [
            // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
            'cookieValidationKey' => '123',
            'baseUrl' => ''
        ],
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
        'user' => [
            'identityClass' => 'app\models\User',
            'enableAutoLogin' => true,
        ],
        'errorHandler' => [
            'errorAction' => 'site/error',
        ],
        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            // send all mails to a file by default. You have to set
            // 'useFileTransport' to false and configure a transport
            // for the mailer to send real emails.
            'useFileTransport' => false,
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'ssl://smtp.yandex.com',
                'username' => '[email protected]',
                'password' => '0000000',
                'port' => '465'
            ]
        ],
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'db' => require(__DIR__ . '/db.php'),
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            "baseUrl" => "",
            'rules' => [
                "/" => "/app",
                "/manager" => "/manager/index"
            ]
        ]
    ],
    'params' => $params,
    'aliases' => [
        '@manager' => '/manager/',
    ]
];

if (YII_ENV_DEV) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = [
        'class' => 'yii\debug\Module',
    ];

    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = [
        'class' => 'yii\gii\Module',
    ];
}

return $config;

The content of .htaccess at the root of the app:
RewriteEngine on
RewriteRule ^(.+)?$ /web/$1

.htaccess content in web:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

Answer the question

In order to leave comments, you need to log in

3 answer(s)
M
Maxim Timofeev, 2017-06-14
@rudants

web is there initially and it is removed by the server config or by transferring its contents to a public folder. This should not have happened to you if the web. There are many options, depending on the situation. Tell me how you solved this issue, show the server config, htaccess if it's apache? the case is clearly there.

B
Boris Korobkov, 2017-06-14
@BorisKorobkov

return $this->redirect('/manager/index/');

A
Alexander N++, 2017-06-14
@sanchezzzhak

'id' => 'test_basic',
    'name'=>'Test.App',
    'basePath' => dirname(__DIR__),
    'defaultRoute' => 'home/index',
    'components' => [
           'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [],
        ],
     ]

show your base web config
and
ngnix or apache config

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question