nginx и .htaccess файлы. Как подружить?

Автор Macintosh, 10 декабря 2012, 10:40:02

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

corner

На папку вы можете назначить права 755, не ниже. Это имеются ввиду файлы . и .. Но сейчас не об этом.
Поймите, сервер вообще ничего не знает и не видит эту папку. С ней занимается только скрипт.

Т.е.  - сервер - муха, скрипт - котлета. Между собой они связаны только тем, что сервер запускает скрипт, который хранится в файле, который хранится в папке, которую может прочитать сервер. (Где-то я уже это слышал у классика, или идейку кому продать по речевому обороту?  :)

Macintosh

#16
Ага, точнее не 600 а 700, тогда скрипт в эту папку грузит картинку, но вот по фтп у меня пропал доступ, я то не www-data ))) Тогда ваш совет вообще не указывать апачу эту папку не подходит. Тут нужны права 755 тогда и скрипт будет работать с этим каталогом, и я mac буду иметь доступ к этому каталогу через фтп )) А уже в конфиге блокировать доступ через регулярку? Правильно я теперь все понял, или все таки можно обойтись без конфига апача? А только правами? )))) И продублирую я там выше редактировал вы наверно не увидили.
Цитировать
И еще по поводу регулярки в конфиге, вместо файла .htaccess. Тут одно слабое место, в конфиге я то регулярку прописал, но конфиг читается при старте сервера, а каталоги 12-2012, 01-2012 и т.д будут создаваться каждый месяц, а сервер может не перезагружаться и годами ))) Тоесть он как в этом случае работает? Тут тоже немного не понятка! Или всеже он будет понимать и новые каталоги по этому регулярному выражению? Или только те что были на момент загрузки сервера?

Сообщение объединено: 10 декабря 2012, 18:41:11

ЦитироватьНа папку вы можете назначить права 755, не ниже. Это имеются ввиду файлы . и .. Но сейчас не об этом.
Поймите, сервер вообще ничего не знает и не видит эту папку. С ней занимается только скрипт.

Погодите ну как же он ее не видит? Если в конфиге сервера указанно, что домашний каталог сайта /home/mac/www/
А эта папка лежит в /home/mac/www/uploads/images/12-2012/original_images/
Как же он ее не видит, я обращюсь например _http://site.com/uploads/images/12-2012/original_images/1.jpg и получу эту картинку, какже не видит? Он видит все что находится в /home/mac/www/. Я что-то вас не понял! )

corner

#17
/home/mac/www/ - это папка, которую видит сервер
Вы грузите картинки в папку /home/mac/uploads/images/12-2012/original_images/  а не в  /home/mac/www/uploads. т.е не в эту папку, а выше. Куда угодно, с любым названием, только чтобы ваш скрипт туда мог писать, читать.
/home/mac/ -
                  |
                  |_ uploads
                  |
                  |_www
                   
Разницу видите? Т.е. вы держите картинки на уровень выше. Сюда сервер не забирается, не может. А скрипт может. Вот здесь, как говорится, собака и зарыта.

Macintosh

#18
А так вы поменяли всю мою структуру каталогов, ну если так то конечно все понятно и все супер. Но в моем то случае немного все не так, у меня все вот так, смотрите обрисую.

В конфиге сервера домашний каталог сайта /home/mac/www/
в каталоге www лежат все скрипты и все папки сайта когда я только заливаю файлы на сервер и еще не чего не закачиваю (картинки) то выглядет это так:

/home/mac/www/uploads/images/ и все каталог пустой.
Как только я закачиваю первую картинку то скрипт автоматически создает вот такую структуру

/home/mac/www/uploads/images/12-2012/big_thumbnail/
/home/mac/www/uploads/images/12-2012/medium_thumbnail/
/home/mac/www/uploads/images/12-2012/original_images/
/home/mac/www/uploads/images/12-2012/small_thumbnail/

Тоесть при закачке каждой картинки, он проверяет существует ли папка текущего месяца, тоесть 12-2012, ага папки нет, он создает папку 12-2012 а в ней еще 4 папки, в original_images он загружает оригинал, а в остальные 3 папки, он грузит превюшки, которые скрипт создает, тоесть делает картинки разных размеров и разкидывает их по нужным папкам, все эти уменьшеные копии будут выводиться на сайте, а вот оригиналы нужно защитить от кражи, тоесть что бы не выкачали всю папку с оригиналами, без моих копирайтов ))))

По этому и стал такой вопрос, на этих 3 папках права 755, и пусть на здаровье выкачивают маленькие картинки, их ни как не защитить поскольку выводятся они на сайте, а вот папка original_images и должна быть защищена. Первое что я придумал это автоматически при создании папки генерировать и файлик .htaccess в нем Deny from all. Доступа из вне к ней нет а картинки php может в нее грузить.

Но раз я захотел поставить Nginx а он не работает с .htaccess то я прописал там в location регулярку на эту папку, что бы он ее перенаправлял на апачь. А тот уже будет блокировать.

Но вы мне подсказали что регулярку можно и в конфигах aпача прописать, я этого не знал, написал регулярку в конфигах (пока только в голове) не дошел еще до конфигов с вами общаюсь ) Вот теперь вроде бы все правильно. А ваш метод хорошь если оригиналы лежат выше каталогом, чем есть доступ у сервера. Но как-то не красиво раскидывать их по разным местам. Хотя тоже идея, возможно и применю, может быть тут перепишу скрипт, а может в других ситуациях пригодится.

Так вот вопрос, который я уже задовал, будет ли конфиг апача работать и для новых каталогов, под регулярку что я выше писал. Или нет?
Второй вопрос, можно ли как то при моей архитектуре каталогов, с помощью прав а не конфига закрыть доступ к этой папке но не закрывать его мне по фтп и php )))

corner

На первый вопрос отвечать не буду, нет времени разбираться.
По второму вопросу отвечу, что обычно делают как раз так как я объяснил. Когда хотят защитить какие-то каталоги, их выносят за пределы видимости сервера. Скрипты с ними все равно будут работать.
Так организованы, к примеру, все фреймворки в части защиты ядра последних.

Macintosh

Ясненько, спасибо большое за помощь ) Пока что попробую через конфиг, потестю и т.д, если не вариант то придется вынести за пределы.