Jump to content

Запрет вывода содержимого каталога через HTTP на Apache


Recommended Posts

Как можно запретить вывод содержимого каталога через HTTP на Apache?

P.S. Если вопрос уже был задан, прошу сильно ногами не бить - в поиске был.

Link to comment
Share on other sites

Как можно запретить вывод содержимого каталога через HTTP на Apache?

P.S. Если вопрос уже был задан, прошу сильно ногами не бить - в поиске был.

Создай в нужном каталоге (или в корне) файл .htaccess со следующим содержимым:

Options -Indexes

DirectoryIndex index.html

Теперь, если в броузере указать путь к этому каталогу без конкретного имени файла, то получишь отказ в доступе Forbidden.

В этом примере индексным файлом считается index.html, естественно ты можешь сюда вписать тот, что тебе нужен. То есть если в данном каталоге есть index.html, то он будет запускаться просто по имени каталога, в котором он содержится без конкретного упоминания имени "index.html"

Если необходимо ограничить доступ к каталогу по пользователям или по адресам, то нужно в .htaccess сделать так:

Запрет для всех:

Order Deny,Allow

Deny from all

Разрешение на доступ для определенных адресов:

Order Deny,Allow

Deny from all

Allow from 192.168.1.1

Allow from ......

Edited by Kobi
Link to comment
Share on other sites

Kobi: У меня сайт на PHP - движке, sPaiZ-Nuke. Я вписал 2 строчки в .htaccess, и при обращении к непустой папке без index - файла перекидывает на движок и его сообщение о том, что сервер не может ответить.

Link to comment
Share on other sites

Многие делают так:

Например нужно запретить просмотр каталога ./images

Для этого в этом каталоге создают файл .htaccess с содержимым:

Options -Indexes

DirectoryIndex index.html

В этой же папке создают этот самый index.html но либо пустой, либо (что лучше всего) точную копию стандартной странички с Forbidden.

Например:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>

<title>403 Forbidden</title>

</head><body>

<h1>Forbidden</h1>

<p>You don't have permission to access /images/

on this server.</p>

<hr />

<address>Apache/1.3.37 Server at www.x-logers.net Port 80</address>

</body></html>

Edited by Kobi
Link to comment
Share on other sites

Kobi: А мне нужно скрыть от посторонных глаз все каталоги, в которых нет index - файла...

Ну так в чём проблема то? Скопируй эти два файла в каждую папку, которую необходимо "защитить".

Link to comment
Share on other sites

А чтобы каждый раз не править этот index.html, можно сделать так:

В .htaccess прописать:

Options -Indexes

DirectoryIndex index.php

А в файле index.php прописать:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>

<title>403 Forbidden</title>

</head><body>

<h1>Forbidden</h1>

<p>You don't have permission to access <?php print dirname($_SERVER['REDIRECT_URL']) ?> on this server.</p>

<hr />

<address><?php print $_SERVER['SERVER_SIGNATURE'] ?></address>

</body></html>

Тогда эти два файла можно простым копированием поместить в каждую папку, скрипт же сам определит нужные параметры для этой страницы.

Edited by Kobi
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...