Как я могу добавить поддельную базовую ссылку в yii2 - PullRequest
0 голосов
/ 25 февраля 2019

Я хочу иметь поддельный URL для расширенного приложения yii2. Вот пример, который я хочу получить

Домашняя страница

www.example.com / er45se5t

Страница пользователя

www.example.com / er45se5t / users / index

Объяснение:

Здесь er45se5t - токенили идентификатор.Мне нужно, чтобы этот токен присутствовал в URL для каждого запроса.

Решения попытались:

Я попытался сохранить токен в сеансе, установить его и добавить со всеми URL

добавил эти правила

'<token:\w+>' => 'site/index',
'<token:\w+>/<controller:\w+>' => '<controller>/index'

Проблема

Когда я выхожу из сеанса, этот сеанс очищается и я не могу добавить этот токен в URL.

, поэтому после выхода из системы я хочу, чтобы URLвыглядеть следующим образом:

www.example.com / er45se5t

или

www.example.com / er45se5t / site / login

1 Ответ

0 голосов
/ 27 февраля 2019

Вы можете добавить компонент с именем CustomUrlManager с содержимым:


namespace frontend\components;

use yii\web\UrlManager;

class CustomUrlManager extends UrlManager
{
    public function createUrl($params)
    {
        $defaultToken='er45se5t';

        if( isset($params['token']) ){
            //you can add whatever here
            $token=$params['token'];
            unset($params['token']);
        } else {
            //you can add whatever here
            $token=$defaultToken;
        }

        $url = parent::createUrl($params);


        if( $url == '/' ){
            return '/'.$token;
        }else{
            return '/'.$token.$url;
        }
    }
}

И в файле конфигурации как компонент:

'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'class'=>'frontend\components\CustomUrlManager',
'rules'=>[

]

],

И вы можете перенаправить www.example.com / некоторым www.example.com/er45se5t на контроллере по умолчанию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...