Как поставить доступ по паролю к папке при помощи htaccess ?

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем rit, 7 фев 2008.

Статус темы:
Закрыта.
  1. rit

    rit

    Регистр.:
    5 дек 2006
    Сообщения:
    571
    Симпатии:
    116
    Как поставить доступ по паролю к папке, например папка admin при помощи htaccess ?
     
  2. Matt

    Matt Постоялец

    Регистр.:
    9 июн 2006
    Сообщения:
    84
    Симпатии:
    45
    создаешь .htaccess в папке admin с вот таким содержимым:
    Код:
    # Access file
    AuthType Basic
    AuthName "Secret Zone"
    AuthUserFile "/www/vhosts/путь до файла паролей/html/user.passwd"
    Require user "user"
    
    user - имя пользователя, который может пользоваться каталогом (их может быть несколько). Имя чувствительно к регистру! /www/vhosts/pyt'_do_tvoego_sajta/html/user.passwd - имя и местоположение файла с паролями.
    Создать файл с паролями также можно на своем компьютере с помощью программы htpasswd
    Посмотреть вложение htpasswd.zip
    Набираешь команду: htpasswd [-c] .passwd username
    Параметр -c нужен только в том случае, если Вы создаете новый файл с паролями. Если Вы хотите добавить нового пользователя к уже существующему файлу, то указывать -с не нужно. username - имя добавляемого пользователя
    После того, как Вы нажмете ENTER, Вам нужно ввести (два раза во избежание ошибки) пароль для нового пользователя.
     
  3. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    crazyyy нравится это.
  4. y-ray

    y-ray Прохожие

    на висте не работает
     
  5. poikl

    poikl

    Регистр.:
    7 ноя 2006
    Сообщения:
    164
    Симпатии:
    31
    тут посмотри есть много вариантов
    http://www.web-hack.ru/download/index.php?case=3
     
  6. VOSKOBB

    VOSKOBB Создатель

    Регистр.:
    8 мар 2008
    Сообщения:
    32
    Симпатии:
    2
    Для этого надовоспользоваться системой базовой авторизации на Apache. Создаешь в каталоге, к которому надо ограничить доступ по паролю, файл .htaccess с такими параметрами:

    AuthType Basic
    AuthName "Some Name"
    AuthUserFile /www/some_login/www/.../some_dir/.htpasswd
    require valid-user

    где /www/some_login/www/.../some_dir/.htpasswd - это полный путь к файлу паролей на сервере

    В директиве AuthUserFile указываем абсолютный путь к файлу с логинами/паролями.
    Далее создается файл паролей. Он содержитт строки вида login:password.
    Пароль надо зашифровать с использованием алгоритма MD5. С этим вполне справится программа уже установленная на Apache - htpasswd (как правило она находится тут: /usr/local/apache/bin, полный путь - /usr/local/apache/bin/htpasswd).

    Можно создать файл паролей в unix shell прямо на сервере. Зайдем в shell и будем выполнять следующие команды:

    htpasswd -mbc .htpasswd user1 ПАРОЛЬ - создаем новый файл .htpasswd, в который добавляем запись для пользователя user1 с паролем, указанным в командной строке.
    htpasswd .htpasswd user2 - добавляем в уже существующий файл .htpasswd пользователя user2, а пароль вводим вручную в ответ на соответствующий запрос программы.

    После окончания заведения всех логинов файл нужно загрузить на сервер.

    И самое главное: .htaccess должен передаваться по FTP строго в текстовом (ASCII) режиме!


    программа есть на Апаче
     
  7. vovaNux

    vovaNux Постоялец

    Регистр.:
    10 апр 2007
    Сообщения:
    125
    Симпатии:
    16
    Если на сервере установлена какая-либо панель, можно оттуда защитить. Могу предложить вариант создания нужного хтаксесса на PHP:

    PHP:
    $fs=fopen("./".folder."/.htaccess""w");
    $protect="AuthName \"Member zone\" \n
    AuthType Basic \n
    AuthUserFile /home/user/public_html/"
    .$folder."/.htpasswd \n
    require valid-user"
    ;
    fwrite($fs$protect);
    fclose($fs);

    $fs=fopen("./".$folder."/.htpasswd""w");
    $protect=$login.":".crypt($password);
    fwrite($fs$protect);
    fclose($fs);
     
  8. Avtandil

    Avtandil Создатель

    Регистр.:
    30 сен 2006
    Сообщения:
    30
    Симпатии:
    24
    Вариант предыдущего поста с выводом на экран.
    Позволяет установить сразу несколько паролей и не надо париться с абсолютным путём.
    PHP:
    $logpass = Array('admin'=>'12345','demo'=>'demo'); // пары логин-пароль, вторую пару можно удалить
    $path $_SERVER['DOCUMENT_ROOT'].'/admin'// путь до запароливаемой директории
     
    $ht fopen('./.htaccess','w');
    fwrite($ht,"AuthName \"Site Admin Entry\"\nAuthType Basic\nAuthUserFile $path/.htpasswd\nRequire valid-user");
    fclose($ht);
     
    $ht fopen('./.htpasswd','w');
    $salt 'xW'// соль - любые две латинские буквы и/или цифры
    echo '<pre>';
    foreach (
    $logpass as $log=>$pass){
      
    $str $log.':'.crypt($pass,$salt)."\n";
      echo 
    $strfwrite($ht,$str);
    }
    fclose($ht);
    echo 
    '</pre>';
     
  9. qqqwww

    qqqwww Постоялец

    Регистр.:
    5 ноя 2006
    Сообщения:
    52
    Симпатии:
    32
    ещё здесь _http://www.htaccess.ru/wiki/PasswordProtection?v=jte можно почитать
     
Статус темы:
Закрыта.