Доступ к папке, не имеющей отношения к друпалу

Аватар пользователя Stutzer Stutzer 12 апреля 2007 в 23:16

Господа, друпальцы )
Возник такой вопрос:
Установил себе drupal, сижу разбираюсь.
Но пока не разобрался, нужно, чтобы одна папка на FTP, не имеющая отношения к друпалу, была доступна по http как обычно. В настоящее время сервер выдает ошибку 403 — access denied. Папка находится в корне.
На сколько я понимаю, надо что-то править в файле .htaccess, но что - не знаю.

Подскажите решение, плз.

Комментарии

Аватар пользователя SiR SiR 13 апреля 2007 в 0:21

Как один из вариантов поместить папку внутри каталога, где расположен сам drupal

database
files
includes
misc
modules

scripts
sites
sodis
themes
CATALOG



Обращение к файлам в данном каталоге - стандартное для php
Кстати очень удобно тем, что для собственные файлы не перемешиваются с "системными"

Аватар пользователя Stutzer Stutzer 13 апреля 2007 в 3:02

— «Как один из вариантов поместить папку внутри каталога»
Возможно, но проблема в том, что нельзя менять путь к этой папке, т.к. в таком случае появится много мертвых внешних ссылок. Ради чего собственно я и парюсь.

— «Это дело вебсервера, поэтому папка должна быть ниже DocumentRoot, чтобы ее можно было видеть по http, .htaccess никак не поможет, если каталог вне зоны действия сервера.»
Папка была доступна до установки Друпала. Под «лежит в корне», я имел ввиду что она (к примеру, папка zzz) доступна по адресу http://domain.name/zzz/
Дело явно в htaccess, т.к. после переименования этого файла папка становится доступной (а друпал перестает работать Lol

— «Добавьте символическую ссылку на этотт каталог в DocumentRoot.
Но помните, что для VirtualHost должна быть включена дериктива Options FollowSymLinks.»

Не совсем понял Sad

Аватар пользователя blackvl@drupal.org blackvl@drupal.org 13 апреля 2007 в 0:44

Это дело вебсервера, поэтому папка должна быть ниже DocumentRoot, чтобы ее можно было видеть по http, .htaccess никак не поможет, если каталог вне зоны действия сервера.
Если вы можете сделать симлинк и настроить Option FollowSymLinks (возможно уже установлена!), то можно это ограничение обойти, т.е. сервер будет думать, что папка в структуре сервера, а на самом деле она где-то в стороне.

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 17 апреля 2007 в 19:04

Есть простое решение.
Добавьте символическую ссылку на этотт каталог в DocumentRoot.
Но помните, что для VirtualHost должна быть включена дериктива Options FollowSymLinks.
Подробнее man ln

Аватар пользователя blackvl@drupal.org blackvl@drupal.org 13 апреля 2007 в 9:14

Папка была доступна до установки Друпала. Под «лежит в корне», я имел ввиду что она (к примеру, папка zzz) доступна по адресу http://domain.name/zzz/
Ну, если у вас при этом друпал стоит в http://domain.name/drupal/, то в .htaccess друпала скорее всего есть строка RewriteBase /drupal и фактически корнем сервера является папка /drupal - просто попробуйте сделать симлинк с /zzz на, например, /drupal/zzz, если не прокатит, вот тогда и стоит разбираться с FollowSymLinks, т.к. опция Options +FollowSymLinks стоит в друпаловском .htaccess по умолчанию.
А для понимания стоит почитать доки по *nix команде ln и вебсерверу Apache (или какой у вас стоит на хостинге)...

Аватар пользователя Stutzer Stutzer 13 апреля 2007 в 9:43

«Ну, если у вас при этом друпал стоит в http://domain.name/drupal/, то в .htaccess друпала скорее всего есть строка RewriteBase /drupal и фактически корнем сервера является папка /drupal»
Нет,я за друпал я залил в корень. Без папки drupal.
А в htaccess есть строчка Rewrite base /drupal

Может я не правильно его установил?

Т.е. FollowSymLinks должна помочь? Ок, буду разбираться.

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 13 апреля 2007 в 9:43

Не смотрел, но по названию это, похоже, может быть полезным для вашей задачи "Configuring .htaccess to ignore specific subfolders | drupal.org"- http://drupal.org/node/30334


Поиск по русским сайтам о Drupal Полный русский перевод Drupal 5.x и модулей: раз и два.

Аватар пользователя alexsl alexsl 16 апреля 2007 в 8:57

у меня такая же ситуация. По ссылке посмотрел вроде должно подходить, крутил и так и сяк, но все равно доступ к папке закрыт.

Аватар пользователя blackvl@drupal.org blackvl@drupal.org 13 апреля 2007 в 10:34

Нет,я за друпал я залил в корень. Без папки drupal.
А в htaccess есть строчка Rewrite base /drupal

Если строчка Rewrite base /drupal не имеет в начале значка #, то лучше его поставить Wink
или переписать как: Rewrite base /
И посмотрите в вашу папочку zzz, может там тоже .htaccess спрятался(?!) и не дает ее смотреть (как папку files в друпале)

Аватар пользователя alexsl alexsl 18 апреля 2007 в 7:58

ок ща гляну.
ну и еще в тужу кучу, если скачивать через друпал то дает скачать только в приватном режиме а в публичном (http) не дает скачать. Это тоже с этим связано?

Аватар пользователя Izem Izem 24 ноября 2007 в 2:46

Уважаемые коллеги! Ну как, удалось решить проблему? Напишите, пожалуйста, как именно.

А то я попробовал из материала по ссылке vadbars'a в htaccess вставить это:

RewriteCond %{REQUEST_URI} "/folder1/" [OR]
RewriteCond %{REQUEST_URI} "/folder2/"
RewriteRule (.*) $1 [L]

(ессно заменил директории на свои), но ничего не получилось - как был запрет на эти директории, так и остался Sad

Помогите, пожалуйста! Спасибо за ответы.

Аватар пользователя Izem Izem 8 декабря 2007 в 22:19

Так, вроде сам разобрался.

В общем, проблема оказалась в .htaccess в строке

# Set the default handler.
DirectoryIndex index.php

Эта директива назначает указанный файл (или список файлов через запятую) загрузочным в каталоге, в котором лежит этот .htaccess, и во всех вложенных каталогах (сделано для нормальной работы CMS, загружающейся с index.php на хостингах, где этот файл не прописан в DirectoryIndex). Поэтому: если в дополнительном каталоге, например, /forum, этот самый форум загружается с файла НЕ index.php , как назначено в директиве, а с другого файла, то мы получим ошибку 403.

Как красиво выйти из положения?

1 вариант - самый простой и самый надёжный. Работает на большинстве хостеров.

Надо просто закомментировать ( знаком # ) директиву DirectoryIndex в .htaccess . И всё заработает!

Если после этого Drupal перестанет запускаться, то это означает, что на хоcтере в директиве DirectoryIndex не указан index.php . Тогда используем

2 вариант - компромиссный.

Надо раскомментировать обратно директиву DirectoryIndex в .htaccess .
После надо добавить в .htaccess в Ваших дополнительных директориях директивы DirectoryIndex с параметром, например, index.html , portal.php или другим в зависимости от того, с какого файла запускается CMS в Вашей директории (может быть, придётся сначала создать файлы .htaccess в Ваших директориях, где их нет). И всё заработает!

Удачи!

PS: 1-й вариант точно работает на Русониксе и Лидерхосте, 2-й, видимо, придётся использовать на Славхосте.

Аватар пользователя vicccy vicccy 4 апреля 2008 в 18:46

Если кому еще нужно, есть более простой вариант, чтобы были доступны другие папки. Надо просто в каждую НЕ друпаловкую папку положить файл htaccess. Подробнее здесь: http://drupal.ru/node/12377

Аватар пользователя Ветер Ветер 9 апреля 2008 в 15:08

А вот как быть в такком случае.

Друпал 6.1 в корне сайта,
Имеется каталог допустим test, тоже в корне.

Имеется htaccess в этой папке
Order Deny,Allow
Deny from all
Allow from 22.22.22.22

Заходим с этого IP - 403, доступ запрещен.
Это как лечить?

Аватар пользователя romankin romankin 25 апреля 2014 в 11:10

Вопрос по прежнему актуальный. Я так и не смог победить.

Нужно открыть доступ к папке http://www.мойсайт.com/raznoe/ что бы содержимое при обращении к ней выводилось просто как список файлов.

в .htaccess внутри этой папки прописано:

Satisfy any
order allow,deny
allow from all

пробовал и так:

Order Deny,Allow
Deny from all

Чесно говоря я не сильно разбираюсь в программировании и преимущественно свои сайты делаю на WP и там у меня нет проблем с открытием доступа к папке, а тут никак победить не могу. Мне нужен свободный доступ к папкам с картинками и файлами для скачивания.

Прошу доступным языком объяснить. Наверняка проблема давно решена, но из всей этой ветки я мало что понял.

Стоит версия 6.22