.htaccess разрешить проблему с локальным хостом

Вот ситуация...

У меня есть запланированное задание cron, которое используется для резервного копирования моей базы данных. Из-за того, как установлен php, мне приходится использовать lynx для запуска php-скрипта, выполняющего резервное копирование.

Поскольку этот скрипт должен находиться в моей папке public_html, я хочу отклонить все запросы, кроме тех, которые приходят непосредственно с моего сервера (например, с локального хоста). Кроме того, я предполагаю, что IP-адрес, с которого я буду исходить, - 127.0.0.1. Я не совсем уверен, правда ли это, но я не могу придумать, каким еще был бы мой ip в этой ситуации. Я прав насчет запуска задания cron и запуска сценария с 127.0.0.1?

Вот как выглядит мой .htaccess:

order allow,deny
deny from all
allow from 127.0.0.1

В результате я продолжаю получать 403 Forbidden. Это то, что я хочу сделать для всех остальных, кроме себя. Может быть, я делаю это неправильно... Кто-нибудь видит, что я делаю неправильно?


person Anthony    schedule 15.08.2009    source источник


Ответы (5)


Используйте порядок наоборот, т.е.:

order deny,allow
deny from all
allow from 127.0.0.1
person dajobe    schedule 15.08.2009
comment
Ах, спасибо, что указали на это! Не уверен, почему я это сделал .... Кроме того, я обнаружил, что мне нужно разрешить доступ к IP-адресу моего сервера, а не к локальному хосту. Я предполагаю, что это потому, что я нажимаю полный (http://.....) адрес при использовании lynx в задании cron. Спасибо за помощь. - person Anthony; 15.08.2009
comment
Великолепно, я поставил IP своего телефона в разрешение. Теперь я могу это сделать. :) - person SPG; 22.07.2011
comment
Я думаю, вам также следует разрешить от ::1, потому что иначе он может вас не пустить (Apache 2.4.7) - person anestv; 19.06.2014
comment
Что мне делать, если я хочу добавить еще один IP-адрес помимо Require Local? (для httpd-xampp.conf) Я имею в виду, что хочу разрешить локальный доступ и один внешний IP-адрес. Мой файл изначально требовал локального доступа, ниже я добавил разрешение от xxx.xxx.xxx.xx, но он не работает, потому что показывает отказ в доступе к этому IP. - person Pathros; 15.01.2015

Требуется локальный

Локальный провайдер разрешает доступ к серверу, если выполняется одно из следующих условий:

  • адрес клиента соответствует 127.0.0.0/8
  • адрес клиента ::1
  • и клиентский, и серверный адрес соединения одинаковы

Это обеспечивает удобный способ сопоставления соединений, исходящих с локального хоста:

Require local

person Leo    schedule 04.11.2016

Ответ Лео решил мою проблему. Вот что я настроил, чтобы заблокировать прямой доступ к изображениям:

<IfModule mod_rewrite.c>
<Files ~ "\.(jpg|jpeg|png|gif|pdf|txt|bmp|mp4|mov|ogg|wmv|webm|flv|mpg|mp2|mpeg|mpe|mpv|m4p|m4v|mp3|wav|acc|oga|m4a)$">
   order deny,allow
   deny from all
   Require local
   allow from all
</Files>
</IfModule>

Я не хотел вводить ip, потому что локальный ip изменился позже

person SwiftNinjaPro    schedule 14.07.2019

Ни один из ответов здесь не позволял мне получить доступ к http://localhost:8888/, пока я не добавил это:

allow from localhost

Итак, в моем случае это весь мой файл .htaccess:

order deny,allow
deny from all
# my IP
allow from xx.xx.xx.xx (use your own IP address here)
# Local development
allow from localhost

# — это комментарий к коду. Этот файл позволяет только мне получить доступ к сайту из моего браузера онлайн (IP) и локально с локального хоста.

Помните, что порядок имеет значение, когда вы используете order deny,allow. Сначала вы помещаете deny в свой файл, а затем allow под ним.

person SpaceNinja    schedule 11.08.2019

Попробуйте добавить файл .htaccess в папку /assets/ со следующим содержимым:

Options +Indexes
# or #
IndexIgnore *

Таким образом, вы увидите, что ваша папка пуста в браузере.

person octavian09    schedule 07.02.2020