Deny from all htaccess не работает

Управление доступом с помощью htaccess. Как изменить доступ к сайту

Здравствуйте программисты, сегодня новое руководство по работе с htaccess. Сегодня я научу вас как запрещать доступ к файлам, как запрещать доступ к директориям, как запрещать доступ к сайту по определенному ip. В общем я вас расскажу как закрывать свой сайт от посетителей.

Данный метод используется для ограничения определенных файлов или директорий сайта.

Как изменить доступ к файлам, с помощью .htaccess?

Для того чтобы это сделать, мы в корневой папке сайта создаем файл .htaccess. Данный файл необходимо открыть как обычный текстовик или с помощью программы для написания кода. Я открываю этот файл через программу Sublime Text.

Для файла .htaccess следует использовать права доступа 644 и загружать его в ASCII-режиме. Если ваш .htaccess файл не работает, то вам следует обратиться к системному администратору или в техподдержку вашего веб-хостинга и убедиться, что использование его разрешено для вашей учетной записи, так как некоторые хостинговые компании не позволяют его использование без предварительного разрешения, это в основном относится к бесплатным хостингам. Также, к сожалению, .htaccess не будет работать на Windows-серверах.

Первая директива, с которой мы познакомимся, это директива Order. Синтаксис директивы прост и она может быть использована в двух вариантах:

Order Deny,Allow – это начала кода, которое показывает, что после него будут перечислены параметры ограничения доступа к файлам.

Allow – разрешает доступ.

В зависимости от выбранного варианта [Deny,Allow] или [Allow,Deny] для директивы Order, мы изменяем логику работы сервера. Если используем первый вариант (Deny,Allow), то мы сообщаем серверу, что хотим запретить доступ для всех (deny), кроме тех, которым разрешим (Allow).

Когда мы используете второй вариант (Allow,Deny), то подразумевается, что мы разрешаем доступ всем, кроме определенных IP.

Здесь стоит отметить, что на самом деле использование директивы Order не является обязательным и возможно использование директив Deny и Allow без директивы Order. Также не будет ошибкой, если, к примеру, объявив в директиве Order вариант Deny,Allow, мы сначала используем директиву Allow, а затем Deny. Хотя все же лучше будет, если мы в этом вопросе не будем отходить от рекомендаций документации.

Как закрыть доступ для всех?!

Итак, для того, чтобы закрыть доступ к сайту для всех, достаточно прописать в файле htaccess в корне следующие строки:

Так мы закрыли доступ ко всему сайту для всех IP. Теперь сервер будет отдавать клиенту ответ 403, т.е. доступ запрещен.

Как закрыть доступ всем, кроме определенного ip?!

Если вы захотите открыть при этом доступ к сайту с конкретного IP, тогда его можно указать в директиве Allow. Например, откроем доступ для IP 127.0.0.1:

Также можно открывать доступ для нескольких IP. Для этого достаточно перечислить их через пробел:

Как закрыть доступ к определенной директории сайта?!

Очевидно, что точно так же мы можем закрыть доступ не ко всему сайту, а только к какой-нибудь папке. Для этого просто нужно создать в папке файл htaccess и в нем прописать всего одну строку:

Как закрыть доступ к файлу на сайте?!

А что, если мы хотим запретить доступ не к папке, а к файлу. Для этого мы воспользуемся еще двумя директивами: Files и FilesMatch. Данные директивы похожи на HTML-теги, поскольку требуют закрывающей директивы и заключены в знаки меньше/больше:

На самом деле они представляют собой некую ограничивающую конструкцию, позволяющую обратиться только к конкретному файлу или файлам. Например, давайте закроем доступ к архиву rar.rar:

Теперь файл пропадет из листинга каталога и при попытке обращения к файлу напрямую сервер вернет нам вместо файла 403 ошибку.

Если мы хотим ограничить доступ к группе файлов, то здесь можно использовать директиву FilesMatch вкупе с регулярными выражениями. Например, так можно ограничить доступ к графическим файлам и архивам:

Источник

Файл .htaccess — настройка перенаправлений и управление конфигурацией веб-сервера

.htaccess — это конфигурационный файл веб-сервера Apache , позволяющий управлять работой веб-сервера и настройками сайта с помощью различных параметров (директив) без изменения основного конфигурационного файла веб-сервера.

На хостинге RU-CENTER в настоящее время используется веб-сервер Apache версии 2.4.

Директивы файла .htaccess действуют для каталога, в котором размещён такой файл, и для всех его подкаталогов. Если вы желаете с помощью .htaccess изменить настройки для сайта в целом, его следует размещать в корневом каталоге сайта

Пожалуйста, будьте внимательны при редактировании файла .htaccess! При сохранении такого файла в кодировке UTF-8 в нём не должно присутствовать BOM-сигнатуры. Для редактирования файла .htaccess и других конфигурационных файлов мы рекомендуем использовать не «Блокнот» Windows, а специальные текстовые редакторы, например Notepad++.

Примеры использования файла .htaccess

1. Перенаправление доменов c синонима сайта на основной домен с кодом 301

Перенаправить запросы на domain.ru с любого из синонимов сайта

RewriteEngine On
RewriteCond % !^domain\.ru$ [NC]
RewriteRule ^(.*)$ http://domain.ru/$1 [L,R=301]

Перенаправить запросы на www.domain.ru с любого из синонимов сайта

RewriteEngine On
RewriteCond % !^www\.domain\.ru$ [NC]
RewriteRule ^(.*)$ http://www.domain.ru/$1 [L,R=301]

Эти правила рекомендуется размещать в самом начале файла .htaccess.

2. Постоянное перенаправление с кодом 301

Если вы изменили адрес страницы сайта, добавьте в .htaccess следующие строки, чтобы запросы со старого адреса переадресовывались на новый

Redirect 301 /page.html http://www.domain.ru/new_page.html

  • page.html — адрес старой страницы относительно корня сайта;
  • www.domain.ru — имя сайта;
  • new_page.html — адрес страницы, на которую нужно выполнить перенаправление.

Например, для перенаправления всех запросов к странице /period/?test=123 вашего сайта на domain.ru, вы можете написать:

Options +FollowSymLinks
RewriteEngine On
RewriteCond % ^test=123$ [NC]
RewriteRule ^period/$ http://domain.ru/ [L,R=301]

3. Переопределение страниц ошибок

При помощи файла .htaccess вы можете установить свои страницы ошибок:

#401 Авторизация не выполнена
ErrorDocument 401 http://domain.ru/errors/401.html
#403 Доступ запрещен
ErrorDocument 403 http://domain.ru/errors/403.html
#404 Страница не найдена
ErrorDocument 404 http://domain.ru/errors/404.html
#500 Внутренняя ошибка сервера
ErrorDocument 500 http://domain.ru/errors/500.html

Соответствующие файлы страниц ошибок (401.html, 404.html и др.) необходимо разместить в каталоге

Для того чтобы при случайном упоминании прямых ссылок на такие страницы они не проиндексировались в поисковых системах, рекомендуется:

User-agent: *
Disallow: /errors

/ваш_домен/docs/errors/.htaccess, в котором прописать

4. Постраничное перенаправление запросов на другой домен c кодом 301

Следующий код перенаправит все запросы к страницам вашего сайта на аналогичные страницы другого сайта, например, запрос http://domain.ru/main будет переадресован на http://www.newdomain.ru/main:

Redirect 301 / http://www.newdomain.ru/

RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.ru/$1 [R=301,L]

5. Ограничение доступа к сайту по IP

Читайте также:  Qt управление sdk не работает

Запретить доступ к сайту с IP-адресов 123.4.5.6 и 123.5.4.3

Order Allow,Deny
Allow from all
Deny from 123.4.5.6 123.5.4.3

Запретить доступ к сайту со всех адресов кроме 123.4.5.6 и 123.5.4.3:

Order Deny,Allow
Deny from all
Allow from 123.4.5.6 123.5.4.3

Запретить доступ к сайту для всех:

6. Переопределение главной страницы сайта (индексного файла каталога)

Сделать главной страницей файл menu.html:

7. Включение обработки PHP в .html-файлах

RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml

8. Запрет выдачи листинга каталога

В случае отсутствия в папке главной страницы (индексного файла), при обращении без указания конкретного имени файла в запросе будет выдан список всех файлов, находящихся в каталоге. Для того чтобы запретить отображение листинга каталога, добавьте в файл .htaccess строку:

9. Включить выполнение CGI-скриптов в папке docs для файлов с расширениями .cgi, .pl. .py

В папке c CGI-скриптами необходимо разместить файл .htaccess с содержимым:

AddHandler cgi-script .cgi .pl .py
Options +ExecCGI

Скрипт должен иметь атрибут исполнения (+x, права доступа, начинающиеся с 7, например, 755).

Атрибуты (права доступа) можно изменить с помощью файлового менеджера панели управления, при помощи вашего FTP-клиента или по SSH . Также в разделе Веб-сервер → Управление модулями должен быть включен модуль CGI.

10. Блокировка переходов со сторонних ресурсов

Для запрета перехода c baddomain.ru на domain.ru добавьте в .htaccess следующее:

RewriteEngine on
RewriteCond % baddomain\.ru [NC]
RewriteRule .* — [F]

Если требуется запретить переходы с нескольких доменов, то используйте следующие директивы

RewriteEngine on
RewriteCond % baddomain\.ru [NC,OR]
RewriteCond % baddomain2\.ru [NC,OR]
RewriteCond % baddomain3\.ru [NC]
RewriteRule .* — [F]

11. Особенности использования кириллических доменов (.РФ, .МОСКВА и др.)

В файле .htaccess использование кириллицы не допускается. При составлении правил перенаправления для кириллических доменов необходимо указывать имя домена в punycode. Узнать имя домена в punycode можно с помощью сервиса Whois.

Например, для перенаправления site.ru на caйт.рф нужно воспользоваться следующим правилом:

RewriteEngine on
RewriteCond % ^www\.site.ru [NC]
RewriteRule ^(.*)$ http://xn--80aswg.xn--p1ai/$1 [R=301,L]

В этом случае ваши посетители могут увидеть именно punycode-представление доменного имени в адресной строке браузера. Это не является ошибкой.

12. Перенаправление с HTTP на HTTPS и обратно

Для работы перенаправления на сайте должен быть установлен действительный SSL-сертификат.

Перенаправить запросы на https://domain.ru

Перенаправить запросы на http://domain.ru

3. Диагностика ошибок

Если после редактирования или размещения .htaccess при обращении к сайту вы получили ошибку 500, то, скорее всего, в файле .htaccess допущена ошибка. Посмотреть её причины вы можете в лог-файле /var/log/ваш_домен.error_log.

Источник

Deny from all htaccess не работает

ОС — Fedora 7.
Имеется схема nginx 0.6.31 + apache 2.2.6 + mod_rpaf 0.6
apache работает как backend, слушает на 8080 порту.
nginx слушает на 80 и всё, кроме статики отдаёт apache.
rpaf настроен. В access_log пишутся «реальные» IP.

Заметил такую странную вещь, если есть .htaccess файл и я в корень сайта кладу например
order allow,deny
allow from [ip с которого соединяюсь]
deny from all

Апач даёт
Forbidden
You don’t have permission to access.
Хотя казалось бы указано allow from [ip с которого соединяюсь]

Если я лезу на апач «напрямую» через http://external_ip:8080/, то правило в .htaccess отрабатывает корректно — я вижу странчку.

Что примечательно, если .htaccess выглядит так
order allow,deny
allow from [ip с которого соединяюсь]
allow from 127.0.0.1
deny from all
и соединяюсь к nginx (а он в свою очередь к apache) через http://external_ip/ — получаю страничку! Нету никакого Forbidden.

Т.о., прихожу к выводу что mod_rpaf не работает в конструкциях .htaccess и передаёт ip frontend`а (в моём случае 127.0.0.1).

Поискал в инете, нашёл только один подобный случай для настроек виртуал хоста:
http://www.apsis.ch/pound/pound_list/archive/2007/2007-01/11.

Кто-нибудь проверьте пожалуйста на практике, может у меня где-то ошибка.
Есть ли какие-нибудь решения? Может стоит автору rpaf обратить внимание на такой «баг».

Ответить | Правка | Cообщить модератору

Оглавление

  • apache + mod_rpaf + .htaccess, HaMiL, 17:10 , 02-Окт-08, (1)
    • apache + mod_rpaf + .htaccess, sofree, 17:25 , 02-Окт-08, (2)
      • apache + mod_rpaf + .htaccess, Alex, 15:37 , 13-Окт-08, (3)
        • apache + mod_rpaf + .htaccess, sofree, 22:23 , 13-Окт-08, (4)
          • apache + mod_rpaf + .htaccess, qwerty, 16:47 , 14-Окт-08, (5)
            • apache + mod_rpaf + .htaccess, sofree, 20:12 , 14-Окт-08, (6)
              • apache + mod_rpaf + .htaccess, qwerty, 11:51 , 28-Окт-08, (7)
                • apache + mod_rpaf + .htaccess, sofree, 00:31 , 31-Дек-08, (8)
                  • apache + mod_rpaf + .htaccess, Ярослав, 20:32 , 31-Июл-09, (9) +1
                    • apache + mod_rpaf + .htaccess, sofree, 01:27 , 01-Авг-09, (10)
                      • apache + mod_rpaf + .htaccess, vinzz, 09:15 , 15-Окт-09, (11)
                        • apache + mod_rpaf + .htaccess, angelina, 11:06 , 10-Дек-09, (12)
                        • apache + mod_rpaf + .htaccess, Avari, 21:21 , 21-Окт-10, (13)
                        • apache + mod_rpaf + .htaccess, Kirill, 11:13 , 22-Окт-10, (14)
                        • apache + mod_rpaf + .htaccess, baddan, 14:56 , 21-Апр-11, (15)
  • Не работает allow, deny, когда apache + mod_rpaf + .htaccess, SatanaClause, 13:36 , 09-Авг-11, (16)
    • Не работает allow, deny, когда apache + mod_rpaf + .htaccess, AL, 15:43 , 02-Мрт-12, (17) +1
      • Не работает allow, deny, когда apache + mod_rpaf + .htaccess, Alan, 15:49 , 02-Мрт-12, (18) –1
        • Не работает allow, deny, когда apache + mod_rpaf + .htaccess, ALex_hha, 01:23 , 09-Мрт-12, (19)
          • Не работает allow, deny, когда apache + mod_rpaf + .htaccess, alan, 01:42 , 09-Мрт-12, (20)
            • Не работает allow, deny, когда apache + mod_rpaf + .htaccess, ALex_hha, 02:20 , 09-Мрт-12, ( 21 )
            • Не работает allow, deny, когда apache + mod_rpaf + .htaccess, PavelR, 17:01 , 16-Мрт-12, ( 22 )
        • Не работает allow, deny, когда apache + mod_rpaf + .htaccess, PavelR, 00:10 , 30-Мрт-12, ( 23 )
  • Не работает allow, deny, когда apache + mod_rpaf + .htaccess, baddan, 18:25 , 04-Май-12, ( 24 )

Сообщения по теме [Сортировка по времени | RSS]

Итак, чтобы пофиксить проблему с реальными айпишниками клиентов при использовании связки nginx+apache2, нужн-то всего лишь поставить один модуль к апачу и прописать 3 строки в конфигах.

Чтоб избавится от неудобства необходимо лишь доставить модуль mod_rpaf2 к Apache 2.x.x

[root@server /]# whereis mod_rpaf2
mod_rpaf2: /usr/ports/www/mod_rpaf2
[root@server /]# cd /usr/ports/www/mod_rpaf2

[root@server /]# make install clean

В httpd.conf (конфиг файл Apache) ищем строку:

#LoadModule rpaf_module libexec/apache2/mod_rpaf.so

Де-коментим строку (путь к .so файлу может отличаться)

Далее в тот-же файл httpd.conf в самый низ дописываем 2 строки

RPAFproxy_ips 127.0.0.
RPAFEnable On

Первая строка — это IP прокси (может быть белым IP адресом), вторая — говорит Apache, что rpaf нужно использовать. Что делает rpaf? Он из заголовка X-Forwarded-for делает REMOTE_ADDR.

Собственно остается в конфиге nginx’а в разделе server (виртуального хоста, не в location’e Proxy-преедачи) дописать такие строки:

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Далее перезагружаем Apache и nginx

[root@server /]# apachectl restart
[root@server /]# /etc/rc.d/nginx restart

1. «apache + mod_rpaf + .htaccess» + / –
Сообщение от HaMiL on 02-Окт-08, 17:10
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. «apache + mod_rpaf + .htaccess» + / –
Сообщение от sofree on 02-Окт-08, 17:25

>Мне проще перекопить нашу статью с кор.википедии. На ней не один сервер
>сейчас работает :))
>===============================================================================
>
>Итак, чтобы пофиксить проблему с реальными айпишниками клиентов при использовании связки nginx+apache2,
>нужн-то всего лишь поставить один модуль к апачу и прописать 3 строки в конфигах.

копипастить не надо. Сам не одну статью прочёл про это. Повторюсь, что
это всё уже сделано и mod_rpaf установлен и ИПы нормально обрабатываются — и в скриптах php и в access_log Apache.

А не работает в .htaccess — allow, deny директивы для ip адресов.
Сами попробуйте, если у Вас apache 2.2 и mod_rpaf — положите .htaccess файл где пропишите deny from [ваш ip].
Опять таки, если к backend`у обратиться «напрямую» http://ext_ip:port, то .htaccess нормально обрабатывается. Поэкспериментируйте. У меня такой баг имеет место.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. «apache + mod_rpaf + .htaccess» + / –
Сообщение от Alex (??) on 13-Окт-08, 15:37

>Сами попробуйте, если у Вас apache 2.2 и mod_rpaf — положите .htaccess
>файл где пропишите deny from [ваш ip].
>Опять таки, если к backend`у обратиться «напрямую» http://ext_ip:port, то .htaccess нормально обрабатывается.
>Поэкспериментируйте. У меня такой баг имеет место.

На 2.0 такая же проблема.
Вы как-нибудь решили.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. «apache + mod_rpaf + .htaccess» + / –
Сообщение от sofree on 13-Окт-08, 22:23

>>Сами попробуйте, если у Вас apache 2.2 и mod_rpaf — положите .htaccess
>>файл где пропишите deny from [ваш ip].
>>Опять таки, если к backend`у обратиться «напрямую» http://ext_ip:port, то .htaccess нормально обрабатывается.
>>Поэкспериментируйте. У меня такой баг имеет место.
>
>На 2.0 такая же проблема.
>Вы как-нибудь решили.

Нет, не решил. Зато выяснилось, что этот баг имеет место. Думаю, автору mod_rpaf надо показать данный «баг»

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. «apache + mod_rpaf + .htaccess» + / –
Сообщение от qwerty (??) on 14-Окт-08, 16:47

Apache/2.2.9 проблем нет, но 1 отличие, у меня блок deny allow описан внутри httpd.conf

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. «apache + mod_rpaf + .htaccess» + / –
Сообщение от sofree (ok) on 14-Окт-08, 20:12

>Apache/2.2.9 проблем нет, но 1 отличие, у меня блок deny allow описан
>внутри httpd.conf

А можно с .htaccess попробовать? Всего лишь маленький файлик.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. «apache + mod_rpaf + .htaccess» + / –
Сообщение от qwerty (??) on 28-Окт-08, 11:51

>>Apache/2.2.9 проблем нет, но 1 отличие, у меня блок deny allow описан
>>внутри httpd.conf
>
>А можно с .htaccess попробовать? Всего лишь маленький файлик.

Order deny,allow
Deny from all
Allow from 127.0.0.1 172.16.0.4

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. «apache + mod_rpaf + .htaccess» + / –
Сообщение от sofree (ok) on 31-Дек-08, 00:31

>[оверквотинг удален]
>>
>>А можно с .htaccess попробовать? Всего лишь маленький файлик.
>
>Работает нормально,
>
>Order deny,allow
>Deny from all
>Allow from 127.0.0.1 172.16.0.4
>
>пускает только с 172.16.0.4

Появилась возможность проверить баг. И так локальная сеть, Apache/2.2.10 (Fedora core 10 rus), ip=10.1.1.1 на котором крутится апач. Апач висит на 8080 (бэкэнд), а на 80 слушает nginx (фронтэнд)

И так:
[root@fc test]# cat /var/www/html/test/.htaccess
Order deny,allow
Deny from all
Allow from 10.1.1.3

Комп, с которого запрашиваю — 10.1.1.3.

You don’t have permission to access /test/ on this server.
Apache/2.2.10 (Fedora) Server at 10.1.1.1 Port 80
Лог: 10.1.1.3 — — [31/Dec/2008:00:28:28 +0300] «GET /test/ HTTP/1.0» 403 281 «-» «Mozilla/5.0 (Windows; U; Windows NT 5.2; ru-RU; rv:1.8.1.17) Gecko/20080829 SeaMonkey/1.1.12»

Случай 2.
http://10.1.1.1:8080/test/
Index of /test
[ICO] Name Last modified Size Description
[DIR] Parent Directory —
Apache/2.2.10 (Fedora) Server at 10.1.1.1 Port 8080
Лог: 10.1.1.3 — — [31/Dec/2008:00:29:12 +0300] «GET /test/ HTTP/1.1» 200 688 «-» «Mozilla/5.0 (Windows; U; Windows NT 5.2; ru-RU; rv:1.8.1.17) Gecko/20080829 SeaMonkey/1.1.12»

Прихожу к выводу, что баг прогрессирует!

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. «apache + mod_rpaf + .htaccess» +1 + / –
Сообщение от Ярослав (??) on 31-Июл-09, 20:32

А у меня получилось победить эту проблему

>[оверквотинг удален]
>http://10.1.1.1:8080/test/
>Index of /test
>[ICO] Name Last modified Size Description
>[DIR] Parent Directory —
>Apache/2.2.10 (Fedora) Server at 10.1.1.1 Port 8080
>Лог: 10.1.1.3 — — [31/Dec/2008:00:29:12 +0300] «GET /test/ HTTP/1.1» 200 688 «-»
>»Mozilla/5.0 (Windows; U; Windows NT 5.2; ru-RU; rv:1.8.1.17) Gecko/20080829 SeaMonkey/1.1.12″
>
>
>Прихожу к выводу, что баг прогрессирует!

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. «apache + mod_rpaf + .htaccess» + / –
Сообщение от sofree (ok) on 01-Авг-09, 01:27

Вот бы хорошо, чтобы автор мода
http://stderr.net/apache/rpaf/
обратил внимание на патч и подправил исходники.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. «apache + mod_rpaf + .htaccess» + / –
Сообщение от vinzz on 15-Окт-09, 09:15

этот патч решил одну проблему, но добавил другую:
теперь в конструкциях наподобие «header( ‘Location: /newpath/’ );» апачь возвращает не domain.com/newpath, а МОЙ-IP-АДРЕС/newpath

МОЙ-IP-АДРЕС — это ип с которого коннект, именно клиентского компьютера на котором открыт браузер. идеи?

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. «apache + mod_rpaf + .htaccess» + / –
Сообщение от angelina on 10-Дек-09, 11:06

>этот патч решил одну проблему, но добавил другую:
>теперь в конструкциях наподобие «header( ‘Location: /newpath/’ );» апачь возвращает не domain.com/newpath,
>а МОЙ-IP-АДРЕС/newpath
>
>МОЙ-IP-АДРЕС — это ип с которого коннект, именно клиентского компьютера на котором
>открыт браузер. идеи?

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. «apache + mod_rpaf + .htaccess» + / –
Сообщение от Avari on 21-Окт-10, 21:21

Поможет только тем, у кого апач 1.3. О чём вполне ясно написано у Сысоева. Для апача2 только mod_rpaf. Лично я категорический сторонник apache2.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. «apache + mod_rpaf + .htaccess» + / –
Сообщение от Kirill (??) on 22-Окт-10, 11:13

>[оверквотинг удален]
>>>
>>
>>Вот бы хорошо, чтобы автор мода
>>http://stderr.net/apache/rpaf/
>>обратил внимание на патч и подправил исходники.
> этот патч решил одну проблему, но добавил другую:
> теперь в конструкциях наподобие «header( ‘Location: /newpath/’ );» апачь возвращает не
> domain.com/newpath, а МОЙ-IP-АДРЕС/newpath
> МОЙ-IP-АДРЕС — это ип с которого коннект, именно клиентского компьютера на котором
> открыт браузер. идеи?

а этот глюк исправили?
нашел кто-нибудь как исправить?

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

15. «apache + mod_rpaf + .htaccess» + / –
Сообщение от baddan on 21-Апр-11, 14:56

> а этот глюк исправили?
> нашел кто-нибудь как исправить?

на debian работает
Server version: Apache/2.2.9 (Debian)
Server built: Dec 11 2010 21:34:00
nginx version: nginx/0.6.32

на CentOS отказывается
Server version: Apache/2.2.3
Server built: Jan 31 2011 17:50:30
nginx: nginx version: nginx/1.0.0

REMOTE_ADDR везде коректно правится. в логах тоже казывается правильный ip, но в centos не работает, в debian работает. в обоих практически одинаково настроены сайты. Видимо в 2.2.9 есть какието изменения которые исправляют проблему.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. «Не работает allow, deny, когда apache + mod_rpaf + .htaccess» + / –
Сообщение от SatanaClause (??) on 09-Авг-11, 13:36

только что наткнулся на эту проблему. Смотрю ничего не изменилось c того времени.

.htaccess с кодом не работает

order deny,allow
deny from all
allow from 111.111.111.111

Решение простое, заменить mod_rpaf на mod_extract_forwarded

2. инсталируем mod_extract_forwarded
yum install —enablerepo=epel mod_extract_forwarded.i386

4. коректируем конфиг /etc/httpd/conf.d/mod_extract_forwarded.conf

по сути он стандартный, только меняем значени MEFaccept на нужное

>[оверквотинг удален]
> deny from all
> и соединяюсь к nginx (а он в свою очередь к apache) через
> http://external_ip/ — получаю страничку! Нету никакого Forbidden.
> Т.о., прихожу к выводу что mod_rpaf не работает в конструкциях .htaccess и
> передаёт ip frontend`а (в моём случае 127.0.0.1).
> Поискал в инете, нашёл только один подобный случай для настроек виртуал хоста:
> http://www.apsis.ch/pound/pound_list/archive/2007/2007-01/11.
> Кто-нибудь проверьте пожалуйста на практике, может у меня где-то ошибка.
> Есть ли какие-нибудь решения? Может стоит автору rpaf обратить внимание на такой
> «баг».

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. «Не работает allow, deny, когда apache + mod_rpaf + .htaccess» +1 + / –
Сообщение от AL (??) on 02-Мрт-12, 15:43

Вы неправильно задаёте конструкцию Order. Последовательность должна быть другой и после запятой недолжно быть пробелов.

Правильно так:
Order Deny,Allow
Deny From all
Allow From 10.1.1.1

и всё работает как надо.

Для справки. Как обрабатываются эти дериктивы:

Order Allow,Deny
Сперва, проверяются все директивы Allow; по крайней мере одна должна соответствовать, или запрос отвергается. Далее, провеляются все директивы Deny. Если какие-либо соответствуют, то запрос отвергается. В конце, любой запрос, который не соответствует директиве Allow или Deny отвергается по умолчанию.

Order Deny,Allow
Сперва, проверяются все директивы Deny; если какая-либо соответствует, то запрос отвергается, если нет соответствия в директиве Allow. Любой запрос, который не соответствует директиве Allow или Deny пропускается.

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

18. «Не работает allow, deny, когда apache + mod_rpaf + .htaccess» –1 + / –
Сообщение от Alan (??) on 02-Мрт-12, 15:49

Спасибо, но тут не в этом дело, mod_rpaf просто неподдерживает этого, так же как и аторизации. Рещение — mod_extract_forwarded.

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

19. «Не работает allow, deny, когда apache + mod_rpaf + .htaccess» + / –
Сообщение от ALex_hha (??) on 09-Мрт-12, 01:23

> Спасибо, но тут не в этом дело, mod_rpaf просто неподдерживает этого, так
> же как и аторизации. Рещение — mod_extract_forwarded.

# cat .htaccess
Order Deny,Allow
Deny From all
Allow From xxx.xxx.238.231

xxx.xxx.157.114 — — [08/Mar/2012:23:17:12 +0200] «GET /test/ HTTP/1.0» 403 283 «-» «Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2»

xxx.xxx.238.231 — — [08/Mar/2012:23:17:27 +0200] «GET /test/ HTTP/1.0» 200 61688 «-» «Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2»

[Thu Mar 08 23:17:12 2012] [error] [client xxx.xxx.157.114] client denied by server configuration: /var/www/vhosts/domain.com.ua/test/

# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Feb 13 2012 22:31:42

# apachectl -t -D DUMP_MODULES | grep rpaf
Syntax OK
rpaf_module (shared)

# nginx -v
nginx version: nginx/0.8.54

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

20. «Не работает allow, deny, когда apache + mod_rpaf + .htaccess» + / –
Сообщение от alan (??) on 09-Мрт-12, 01:42

Возможно mod_rpaf или apache версия играет роль, мы для семя пометили модуль как ненадежный и отказались от его использования. mod_extract_forwarded http://www.openinfo.co.uk/apache/index.html на боевый машинах с хостингом используется пол года, проблем нет, версии разные.

>[оверквотинг удален]
> CentOS-6.2
> # httpd -v
> Server version: Apache/2.2.15 (Unix)
> Server built: Feb 13 2012 22:31:42
> # apachectl -t -D DUMP_MODULES | grep rpaf
> Syntax OK
> rpaf_module (shared)
> # nginx -v
> nginx version: nginx/0.8.54
> ЧЯДНТ?

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

21 . «Не работает allow, deny, когда apache + mod_rpaf + .htaccess» + / –
Сообщение от ALex_hha (??) on 09-Мрт-12, 02:20

> Возможно mod_rpaf или apache версия играет роль, мы для семя пометили модуль
> как ненадежный и отказались от его использования. mod_extract_forwarded http://www.openinfo.co.uk/apache/index.html
> на боевый машинах с хостингом используется пол года, проблем нет, версии
> разные.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

22 . «Не работает allow, deny, когда apache + mod_rpaf + .htaccess» + / –
Сообщение от PavelR (ok) on 16-Мрт-12, 17:01

> Возможно mod_rpaf или apache версия играет роль, мы для семя пометили модуль
> как ненадежный и отказались от его использования. mod_extract_forwarded

Версия mod_rpaf играет роль. Используйте 0.6 или патченную 0.5.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

23 . «Не работает allow, deny, когда apache + mod_rpaf + .htaccess» + / –
Сообщение от PavelR (ok) on 30-Мрт-12, 00:10

> Спасибо, но тут не в этом дело, mod_rpaf просто неподдерживает этого, так
> же как и аторизации. Рещение — mod_extract_forwarded.

Выше, в http://www.opennet.ru/openforum/vsluhforumID8/6014.html#17 верно написали, как правильно пользоваться директивами (Order / Allow / Deny) .htaccess

Небольшая проверка показывает, что директивы .htaccess отрабатывают идентично как при наличии, так и при отсутствии mod_rpaf-0.6.

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

24 . «Не работает allow, deny, когда apache + mod_rpaf + .htaccess» + / –
Сообщение от baddan on 04-Май-12, 18:25

модуль mod_extract_forwarded не удалось скомпилить и подключить по нормальному иза ошибки какойто с прокси, в принцыпе там в исходнике правится #define, но почемуто после этого не стало работать, то что работало в centos.

вот что получилось и работает.
rpaf.conf

RPAFenable On
RPAFsethostname On
RPAFproxy_ips 184.xx.xx.xxx 127.0.0.1

Nginx. 1.2
site.net
server <
listen 80;
server_name site.net *.site.net;

# access_log /home/www/tube/site.net/log/ng-acc.log;
error_log /home/www/tube/site.net/log/ng-err.log;

location / <
proxy_pass http://184.xx.xx.xx:81;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE_ADDR $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 500m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 900;
proxy_read_timeout 900;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
charset off;
track_uploads proxied 30s;
>

/contents/videos/ <
flv;
root /home/www/tube/site.net/public_html;
internal;
>

/contents/videos_sources/ <
root /home/www/tube/site.net/public_html;
internal;
>

/contents/albums/sources/ <
root /home/www/tube/site.net/public_html;
internal;
>

/contents/albums/main/700×525/ <
root /home/www/tube/site.net/public_html;
internal;
>

* ^.+\.(gif|jpg|mpg|mp3|mpeg|avi)$ <
valid_referers none blocked site.net *.site.net;
if ($invalid_referer) <
return 403;
>
root /home/www/tube/site.net/public_html;
>

/admin/include/get_upload_status.php <
report_uploads proxied;
# upload_progress_header hash;
upload_progress_jsonp_output;
>
>

———————————
Order Allow,Deny
с пробелом без пробелом в обратном порядке и вовсе без ordera обрабатывается одинаково.
всем удачи.

Источник

Читайте также:  Как настроить часы гастар настольные
Оцените статью