Назад | Перейти на главную страницу

Отключение доступа к определенным каталогам и их содержимому

У меня есть веб-сайт, содержащий несколько веб-приложений. Каждое веб-приложение соответствует подкаталогу корневого каталога документа, имя которого начинается с «Web». (Например, /WebLulzGenerator и /WebInternetHateMachine веб-приложения, но /MoarHelperz не является.)

Я хочу, чтобы эти веб-приложения были доступны только через HTTPS, поэтому я сделал следующее в моем httpd.conf файл:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<DirectoryMatch "^/Web[A-Za-z0-9]+">
    Order allow,deny
    Deny from all
</DirectoryMatch>

# In extra/httpd-ssl.conf, access to "^/Web[A-Za-z0-9]+"
# is reenabled, but only through HTTPS.

Однако, когда я проверил свою конфигурацию "http: // myip / WebTest"правильно открылся. Что я делаю не так?

<Directory> карты с физическим расположением ресурсов. Вы должны использовать <Location> или <LocationMatch>для локаций.

<LocationMatch /Web.*>
   Order Allow,deny
   Deny from All
</Location>

Остерегайтесь следующего предупреждения от документация:

Разделы <Location> работают полностью вне файловой системы. Это имеет несколько последствий. Что наиболее важно, директивы <Location> не должны использоваться для управления доступом к расположениям файловой системы. Поскольку несколько разных URL-адресов могут отображаться в одной и той же файловой системе, такие средства управления доступом можно обойти.