У меня есть система подписки на рассылку новостей, и я хотел бы запретить доступ к некоторым файлам (например, сценарию, который подписывается на пользователя). Проблема, с которой я столкнулся, заключается в том, что мне нужно запретить доступ к файлам для всех, кто приходит извне, но сценарии должны иметь доступ друг к другу.
Например, у меня есть следующие файлы:
Невозможно получить доступ к subscribe.php, набрав соответствующий URL-адрес. Тем не менее, index.html должен иметь возможность отправлять данные, которые были введены в форму для subscribe.php.
Вот что я пробовал до сих пор:
Я оставил index.html в корневом каталоге и переместил subscribe.php в папку/ограничен. Я добавил файл.htaccess в папку ограниченным. .htaccess содержит только: deny from all
Это дает мне ошибку 403, когда я пытаюсь получить доступ к subscribe.php через URL-адрес, но он также дает мне ту же ошибку, когда я отправляю форму в index.html
Мой вопрос: что мой файл.htaccess должен выглядеть как архив, что я хочу, и почему то, что я пытался, не работает?
Проблема, с которой я столкнулся, заключается в том, что мне нужно запретить доступ к файлам для всех, кто приходит извне, но сценарии должны иметь доступ друг к другу.
Вы ошибаетесь; что не соответствует тому, что вы говорите позже:
Проблема, с которой я столкнулся, заключается в том, что мне нужно запретить доступ к файлам для всех, кто приходит извне, но сценарии должны иметь доступ друг к другу.
вы не отправляете форму; клиентский браузер отправляет форму с помощью веб-запроса. Не думайте об этом так:
index.html должен иметь возможность отправлять данные, которые были введены в форму для subscribe.php.
Это не то, что происходит. index.html
содержит html, который при визуализации в браузере клиента указывает браузеру, где и как подать регистрационную форму.
Есть несколько вещей, которые вы могли бы попробовать:
subscribe.php
чтобы блокировать запросы GET и ожидать получения соответствующей информации о формеВероятно, есть и другие решения, но, как вы видите, ни один из них не является полной версией slam-dunk из-за модели HTTP-сервера без состояния.