Yii framework - изменить URL модуля - PullRequest
2 голосов
/ 02 августа 2011

В моем приложении есть модуль с именем «admin», который доступен в / mysite / admin. Чтобы повысить безопасность сайта, я хочу изменить этот URL-адрес на что-то более сложное, чтобы угадать его обычным пользователям, и об этом узнает только администратор сайта.

Я пробовал правила urlManager, но не смог получить желаемый результат, например:

'admin-panel'=>'admin/default/index', 
'admin-panel/login'=>'admin/default/login' 

Но это будет работать только для этих двух URL.

Так что единственное, о чем я могу думать сейчас, - это переименовать сам модуль. На имя модуля часто ссылаются по всему приложению, так что это слишком сложно сделать. У кого-нибудь есть другие предложения?

Ответы [ 4 ]

1 голос
/ 02 августа 2011
rules=>array(
    'admin-panel'                            =>'admin',
    'admin-panel/<_c:\w+>/<_a:\w+>/<id:\d+>' =>'admin/<_c>/<_a>/<id>',
    'admin-panel/<_c:\w+>/<_a:\w+>'          =>'admin/<_c>/<_a>',
    'admin-panel/<_c:\w+>'                   =>'admin/<_c>',
)

Но это просто псевдоним - ваш админ модуль все еще будет доступен по / admin / URL. На самом деле вы должны проверить доступ для пользователей, не пытайтесь скрыть вашу админ-панель.

0 голосов
/ 05 мая 2014
    'urlManager'=>array(
        'urlFormat'=>'path',
        'rules'=>array(
            'module/<module:\w+>/<controller:\w+>/<action:\w+>'=>'<module>/<controller>/<action>',
            'module/<m:\w+>/<c:\w+>/<a:\w+>'=>'<m>/<c>/<a>',
        )
    ),
0 голосов
/ 02 августа 2011

попробуйте добавить:

'admin-panel'=>'admin',
'admin-panel/<controller:\w+>'=>'admin/<controller>',
'admin-panel/<controller:\w+>/<action:\w+>'=>'admin/<controller>/<action>',
0 голосов
/ 02 августа 2011

Взгляните на Управление URL (параметризация маршрутов) из Полного руководства. Что-то вроде этого должно сделать работу:

array(
  '<_c:(admin\-panel)>/<_a>' => 'admin/default/<_a>',
)

Но вы просто «переименовываете» свой контроллер по умолчанию в модуле администратора, и он по-прежнему будет доступен по старому URL.

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