Авторизация к папке кроме одного файла?

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

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

    mrdigy

    Регистр.:
    29 дек 2007
    Сообщения:
    159
    Симпатии:
    21
    Вот пример как запретить доступ к папке кроме авторизированных пользователей.

    AuthType Basic
    AuthName "Private zone. Only for administrator!"
    AuthUserFile /usr/host/mysite/folder.htpasswd
    require valid-user
    require root

    А как сделать что б в этой папке был доступ к одному файлу всем без авторизации?
    Спаибо за ответы.
     
  2. brazer

    brazer Постоялец

    Регистр.:
    16 май 2006
    Сообщения:
    87
    Симпатии:
    10
    Код:
    AuthName "Administration Area"
    AuthType Basic
    AuthUserFile "FILE_PATH/.htpasswd"
    Require valid-user
    SetEnvIf Request_URI "(test\.html)" allow_all
    Order allow,deny
    Allow from env=allow_all
    Satisfy any
    
     
  3. mrdigy

    mrdigy

    Регистр.:
    29 дек 2007
    Сообщения:
    159
    Симпатии:
    21
    Было б не полохо объяснение по каждой строчке.
    Спасибо
     
  4. brazer

    brazer Постоялец

    Регистр.:
    16 май 2006
    Сообщения:
    87
    Симпатии:
    10
    Код:
    AuthName "Administration Area"
    AuthType Basic
    AuthUserFile "FILE_PATH/.htpasswd"
    Require valid-user
    
    первые четыре не объясняю

    Код:
    SetEnvIf Request_URI "(test\.html)" allow_all
    SetEnvIf позволяет устанавливать переменные окружения, руководствуясь некоторыми условиями. мы тестируем запрашиваемый URI на предмет его совпадения с именем файла test.html
    если это так, то сервер установит переменную allow_all.
    по умолчанию сервер присвоит ей 1.

    Код:
    Order allow,deny
    Order определяет последовательность проверки директив allow и deny, а также действия по умолчанию. сначала проверяются директивы allow, если совпадение найдено, то доступ предоставляется, иначе проверяются директивы deny и если совпадение найдено, то доступ запрещается, иначе доступ предоставляется

    Код:
    Allow from env=allow_all
    Allow директива затрагивает, какие хозяева могут получить доступ к области сервера. доступом можно управлять hostname, IP (и диапазоном IP), или в соответствии с другими особенностями запроса клиента, захваченного в переменных окружающей среды (как раз в нашем случае)

    Код:
    Satisfy any
    определяет стратегию доступа, если используются и allow и require. параметр может быть или 'all' или 'any'. С "any" опцией клиенту будет предоставлен доступ, если установлена переменная (наш случай) или он передаст адрес хоста, или айпи
     
    mrdigy нравится это.
  5. mrdigy

    mrdigy

    Регистр.:
    29 дек 2007
    Сообщения:
    159
    Симпатии:
    21
    Да работает, но получается что он одновременно и запрашивает логин/пароль и запускает разрешённый файл.
    Можно ли зделать что б он не спрашивал логин/пароль а запускал разрешённый файл только.
    Спасибо.
     
  6. brazer

    brazer Постоялец

    Регистр.:
    16 май 2006
    Сообщения:
    87
    Симпатии:
    10
    Код:
    AuthName "Administration Area"
    AuthType Basic
    AuthUserFile "FILE_PATH/.htpasswd"
    
    SetEnvIf Request_URI "(test\.html)" allow_all
    Order allow,deny
    Allow from env=allow_all
    Satisfy any
    
    Require valid-user
    попробуй так
     
  7. mrdigy

    mrdigy

    Регистр.:
    29 дек 2007
    Сообщения:
    159
    Симпатии:
    21
    Спасибо за ответы.
    Но всё равно спрашивает логин/пароль + запускает разрешённый файл.
     
  8. brazer

    brazer Постоялец

    Регистр.:
    16 май 2006
    Сообщения:
    87
    Симпатии:
    10
    странно... у тебя стандартная настройка апача?
    может где-то глубже настройки трогались... в httpd.conf например...

    проверил на 3х серверах тока что
    везде работает без проблем
     
  9. mrdigy

    mrdigy

    Регистр.:
    29 дек 2007
    Сообщения:
    159
    Симпатии:
    21
    Да возможно, а как сделать такой вариант без авторизации, с использованием deny from all, только доступ к одному файлу всем, и полный доступ к root.
    Напишите примерчик. Спасибо.
     
  10. mrsonik

    mrsonik Постоялец

    Регистр.:
    17 окт 2008
    Сообщения:
    104
    Симпатии:
    10
    у меня такой же вопрос, вот например када гружу страницу с кодом в начале
    PHP:
    include('admin/config.php');
     include_once(
    'admin/forms/class_form.php');
    то при загрузке этой страницы просит логин и пароль но одновременно пускает, хотя я ни одного файла не разрешал, папка admin все под запретом
     
Статус темы:
Закрыта.