Http basic Authorization — различия между версиями
Материал из Umicms
Mad grant (обсуждение | вклад) |
Mad grant (обсуждение | вклад) |
||
Строка 16: | Строка 16: | ||
Потом создайте в корневой директории папку "security" и положите в нее: | Потом создайте в корневой директории папку "security" и положите в нее: | ||
− | 1) файл .htpasswd, о том как его получить можно прочитать, например, вот [http://ru.wikipedia.org/wiki/Htpasswd здесь]. | + | 1) файл .htpasswd, о том как его получить и заполнить данными можно прочитать, например, вот [http://ru.wikipedia.org/wiki/Htpasswd здесь]. |
− | 2) .htaccess следующего содержания: | + | 2) файл .htaccess следующего содержания: |
<source lang="apache"> | <source lang="apache"> | ||
− | + | AuthType Basic | |
− | + | AuthName "private area" | |
+ | AuthUserFile /home/domains/c-cmac/htdocs/security/.htpasswd | ||
+ | require valid-user | ||
</source> | </source> | ||
+ | *в AuthUserFile укажите абсолютный путь до файла .htpasswd, см. 1). | ||
+ | |||
+ | 3) php файл check.php следующего содержания: | ||
+ | |||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | include '../standalone.php'; | ||
+ | |||
+ | $buffer = new HTTPOutputBuffer; | ||
+ | $buffer->redirect("/admin/news/lists/", '301 Moved Permanently', 301); | ||
+ | ?> | ||
+ | </source> | ||
+ | |||
+ | Тогда, при запросе имя_вашего_сайта/admin, браузер затребует ввести авторизационные данные, если он будут введены верно, то произойдет редирект на стандартную форму авторизации в административную панель UMI.CMS. | ||
+ | |||
+ | Если Вы не хотите, еще раз вводить те же данные, то можете внести правки в файл check.php: | ||
+ | |||
+ | <source lang="php"> | ||
+ | include '../standalone.php'; | ||
+ | |||
+ | $login = $_SERVER['PHP_AUTH_USER']; | ||
+ | $pass = $_SERVER['PHP_AUTH_PW']; | ||
+ | |||
+ | $buffer = new HTTPOutputBuffer; | ||
+ | $buffer->redirect("/admin/news/lists/?u-login=$login&u-password=$pass", '301 Moved Permanently', 301); | ||
+ | </source> | ||
+ | |||
+ | *Из-за особенностей архитектуры UMI.CMS второй версии полноценно закрыть всю административную панель этим способом не получится, но можно хотя бы закрыть самый очевидный адрес /admin. | ||
[[category:.htaccess]] | [[category:.htaccess]] |
Версия 15:09, 18 марта 2014
Актуально для версии 2.9.5
Задача
Закрыть страницу /admin дополнительной http авторизацией.
Решение
Для решения задачи в .htaccess добавьте строку:
RewriteCond %{REQUEST_URI} ^(/admin)$
RewriteRule ^(.) /security/check.php [L,R]
Потом создайте в корневой директории папку "security" и положите в нее:
1) файл .htpasswd, о том как его получить и заполнить данными можно прочитать, например, вот здесь.
2) файл .htaccess следующего содержания:
AuthType Basic
AuthName "private area"
AuthUserFile /home/domains/c-cmac/htdocs/security/.htpasswd
require valid-user
- в AuthUserFile укажите абсолютный путь до файла .htpasswd, см. 1).
3) php файл check.php следующего содержания:
<?php
include '../standalone.php';
$buffer = new HTTPOutputBuffer;
$buffer->redirect("/admin/news/lists/", '301 Moved Permanently', 301);
?>
Тогда, при запросе имя_вашего_сайта/admin, браузер затребует ввести авторизационные данные, если он будут введены верно, то произойдет редирект на стандартную форму авторизации в административную панель UMI.CMS.
Если Вы не хотите, еще раз вводить те же данные, то можете внести правки в файл check.php:
include '../standalone.php';
$login = $_SERVER['PHP_AUTH_USER'];
$pass = $_SERVER['PHP_AUTH_PW'];
$buffer = new HTTPOutputBuffer;
$buffer->redirect("/admin/news/lists/?u-login=$login&u-password=$pass", '301 Moved Permanently', 301);
- Из-за особенностей архитектуры UMI.CMS второй версии полноценно закрыть всю административную панель этим способом не получится, но можно хотя бы закрыть самый очевидный адрес /admin.