Надеюсь мой опыт поможет.
Проблема решается 2-мя строчками кода и одной командой в консоли.
1) В консоли делаете симлинк на /bitrix/ (допустим имя симлинка - /manager/)
2) Далее в init.php добавляете:
| Цитата |
|---|
AddEventHandler("main", "OnEndBufferContent", "myfunction");
function myfunction(&$content) { global $USER, $APPLICATION; if (($APPLICATION->GetCurDir() == '/bitrix/' || $APPLICATION->GetCurDir() == '/bitrix/admin/') && !$USER->IsAdmin()) { LocalRedirect("/404.php"); } } |
Полагаю идея понятна - перед выводом контента система проверяет, если страница по адресу bitrix или bitrix/admin/ и пользователь не авторизован как админ, то система отредиректит на 404 ошибку.
Ну а через симлинк manager можно спокойно штатно авторизоваться.
Даже если при работе в админке (после авторизации) произойдет переход в bitrix/admin/ (например при редактировании элемента инфоблока) редиректа на 404 не будет (т.к. пользователь авторизован) и можно спокойно работать.