Помощник
|
Выборочная авторизация apache, Решение проблемы htaccess с авторизацией по ip и паролю |
matveichex
|
Сообщение
#1
|
||
|
|
||
|
|||
ZiTosS |
28.3.2010, 18:44;
Ответить: ZiTosS
Сообщение
#2
|
|
matveich_ex,
Хех, сделал но конечно через такую опу. Допустим, мы хотим запрашивать авторизацию с IP не из сетки: 1) Создаём файл .htaccess в корне с таким содержимым # запрещаем чтение файла .htpasswd <Files .htpasswd> deny from all </Files> RewriteEngine On # включаем модуль mod_rewrite RewriteCond %{REMOTE_ADDR} 192.168.*.* # если из сетки RewriteRule ^(.+)$ $1 [L] # перенаправляем на что запросили, то и получили RewriteCond %{REMOTE_ADDR} !192.168.*.* # если НЕ из сетки RewriteCond %{SCRIPT_FILENAME} !dsafwqggnqwe.php$ # и если имя скрипта НЕ заканчивается на dsafwqggnqwe.php RewriteRule ^(.+)$ dsafwqggnqwe.php?http=$1 [QSA,L] # перенаправляем на файл dsafwqggnqwe.php с http - тем что запросили, так же не забываем передать все остальные GET параметры с помощью флага "QSA" # Ставим на файл dsafwqggnqwe.php авторизацию <Files dsafwqggnqwe.php> AuthType Basic AuthName "Authorization" AuthUserFile [полный путь с именем до файла .htpasswd] require valid-user </Files> 2) Создаём файл .htpasswd с помощью одноименной утилиты или ещё как. Затем помещаем его куда хотим, главное затем в .htaccess абсолютный путь до него правильно прописать 3) Создаём в корне файл с именем dsafwqggnqwe.php и содержимым [php]<?php if( isset($_GET['http']) && file_exists($_GET['http']) ) // если передан параметр http и такой файл или папка существуют { $file = $_GET['http']; // заносим в $file содержимое GET-параметра http if( !is_file($file) ) // Если передан не файл, а папка $file = realpath($file)."/index.php"; // строим путь до файла index.php в этой папке include_once($file); // включаем переданный файл в скрипт } else echo "Файл не существует"; // если GET-параметр не был передан или не является файлом или папкой ?>[/php] 4) Попробовать в работе. P.s.: Проверял на сервере HC - Linux: передаётся строка с GET, поддерживаются отправления формы. |
|
|
matveichex
|
Сообщение
#3
|
|
Огромное спасибо за помощь! Сделал все по рекомендациям, возникла проблема, цитирую из логов ошибок апача:
htaccess: RewriteCond: bad flag delimiters, referer: http://адрес сайта Непосредственно при входе на сайт: Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. |
|
|
ZiTosS |
5.4.2010, 13:02;
Ответить: ZiTosS
Сообщение
#4
|
|
matveich_ex, Сейчас скину архивчиком мой рабочий вариант. Возможно у вас сервер не поддерживает какие-то флаги. Надо поразбираться.
Прикрепленные файлы
|
|
|
ZiTosS |
20.4.2010, 22:24;
Ответить: ZiTosS
Сообщение
#5
|
|
|
matveich_ex, ну так и не заработал? Просто так долго мучался с этим скриптом, что даже стало интересно, работает ли он в реалии на всех серверах, или только на моем...
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
обновить версию php apache | 1 | Snejebelka | 1652 | 29.1.2019, 18:11 автор: Snejebelka |
|
Научить работать с WebDAV (на Apache) на PHP или JS | 4 | eugen35 | 2953 | 31.7.2014, 12:37 автор: -HTMLandPHP- |
|
Авторизация на HTML сайте | 1 | yzol | 2840 | 3.6.2014, 8:33 автор: -Apay- |
|
Авторизация с помощью API | 4 | Danielee | 1111 | 24.1.2013, 1:04 автор: isvetlichniy |
|
Авторизация VK | 1 | attractive | 3303 | 3.11.2012, 22:51 автор: -html-performer- |
Текстовая версия | Сейчас: 23.4.2024, 21:57 |