Comments 82
По моему, никогда не надо делать так, что бы все ваши файлы отображались как PHP. Это очень плохо и небезопасно.
15. Защита паролем.
Иногда нужно, чтобы доступ к некоторым ресурсам сайта был разрешён только определённым пользователям.
Запустив команду «htpasswd /home/pathto/.htpasswd user1» и введя 2 раза пароль, создастся файл .htpasswd примерно такого содержания:
user1:31/a7xzJFbFoo
user2:7JK9iJEedT8hA
В файл .htaccess добавляем следующие строки:
AuthUserFile /home/pathto/.htpasswd
AuthType Basic
AuthName «Secret Place»
require valid-user
Доступ теперь возможен только при введении правильного имени пользователя и пароля.
Иногда нужно, чтобы доступ к некоторым ресурсам сайта был разрешён только определённым пользователям.
Запустив команду «htpasswd /home/pathto/.htpasswd user1» и введя 2 раза пароль, создастся файл .htpasswd примерно такого содержания:
user1:31/a7xzJFbFoo
user2:7JK9iJEedT8hA
В файл .htaccess добавляем следующие строки:
AuthUserFile /home/pathto/.htpasswd
AuthType Basic
AuthName «Secret Place»
require valid-user
Доступ теперь возможен только при введении правильного имени пользователя и пароля.
Вот прямо сейчас смотрю Яндекс. Кит 3
events.yandex.ru/events/kit/3/
Цитата от лектора: «Если вы еще используете апач, то прямо сейчас с этого момента перестаньте его использовать»
Ну и дальше пространно говорит о наличии фундаментальных проблем в апаче и предлагает перейти на nginx.
events.yandex.ru/events/kit/3/
Цитата от лектора: «Если вы еще используете апач, то прямо сейчас с этого момента перестаньте его использовать»
Ну и дальше пространно говорит о наличии фундаментальных проблем в апаче и предлагает перейти на nginx.
Не так давно все рабочие проекты стали держать только под nginx — всё супер. При этом перейти с apache на nginx не составляет никакого труда. Даже реврайты все можно легко регулярками конвертнуть. Настройки более удобные и гибкие.
Ага, кстати, для тех у кого многострочные .htaccess и кому лень вручную их переписывать для nginx в сети есть конверторы.
winginx.ru/htaccess
winginx.ru/htaccess
Поддерживаю, тоже давно всё перевёл. Некоторые трудности были только с MediaWiki из-за её очень «особого» подхода к работе ЧПУ, но как уже сказал коллега чуть выше, это все можно нивелировать настройкой конфига.
А для Wordpress, к примеру, есть небольшой модуль, который фиксит работу ЧПУ на nginx и вовсе из коробки.
А для Wordpress, к примеру, есть небольшой модуль, который фиксит работу ЧПУ на nginx и вовсе из коробки.
mod_flv под nginx нет, так бы тоже пересел
А ngx_http_flv_module не подходит? nginx.org/ru/docs/http/ngx_http_flv_module.html
Все бы прекрасно, если бы можно было скрипты под разными юзерами запускать. Иначе взлом одного сайта ставит под удар все остальные автоматом.
Nginx вообще скриптов не запускает. Будьте спокойны. =)
А кто же запускает обработку PHP-скриптов? ;-)
Именно! И работает он как раз под одним юзером, что фактически дает права на все проекты общие. В этом и проблема.
Это уж как настроите. Можете настроить на каждый сайт свой пул со своим юзером.
Я что-то про это уже читал, правда там, как я понял, нужно еще с бубном местами скакать, что не добавляет удобства. Есть какой-то нормальный мануал на эту тему, не в курсе?
Да не было там никогда никаких заморочек, пулы от разных пользователей у меня работали ещё когда php-fpm существовал только в виде патча на php 5.2.
Настроек там по пальцам пересчитать:
php.net/manual/en/install.fpm.configuration.php
Но как видно, можно не просто пользователя задать, но и chroot для каждого сделать, плюс ограничения по ресурсам.
Каждый пул — это отдельная секция в конфиге, вот пример:
www.if-not-true-then-false.com/2011/nginx-and-php-fpm-configuration-and-optimizing-tips-and-tricks/#php-fpm-pools-configuration
Настроек там по пальцам пересчитать:
php.net/manual/en/install.fpm.configuration.php
Но как видно, можно не просто пользователя задать, но и chroot для каждого сделать, плюс ограничения по ресурсам.
Каждый пул — это отдельная секция в конфиге, вот пример:
www.if-not-true-then-false.com/2011/nginx-and-php-fpm-configuration-and-optimizing-tips-and-tricks/#php-fpm-pools-configuration
Вспомнился анекдот.
В ресторане вскакивает грузин(г) и орет
(г) — Грузины лучше чем армяне
Подскакивает армянин (а)
(а) — Чем лучше? ЧЕМ?
(г) — Чем армяне.
В ресторане вскакивает грузин(г) и орет
(г) — Грузины лучше чем армяне
Подскакивает армянин (а)
(а) — Чем лучше? ЧЕМ?
(г) — Чем армяне.
Если же вам нужны базовые сведения о предназначении данного файла, то вы можете получить из нашей статьи введение в .htaccess
Честно говоря разочарован. Думал здесь я найду реально что-то интересное, а не простой репост того, чего итак в сети уже полно в 100500 копиях.
Если все скрипты лежат в папке system достаточно ли в нее кинуть отдельный файл .htaccess с записью Deny From all
И как это сделать не плодя файлы .htaccess?
И как это сделать не плодя файлы .htaccess?
Да, достаточно. И плодить файл не придется, один файл на всю папку system.
Другое дело, что по хорошему она должна быть на одном уровне с public_html, чтобы еще и таким способом исключить прямого обращения.
Другое дело, что по хорошему она должна быть на одном уровне с public_html, чтобы еще и таким способом исключить прямого обращения.
Да, действие .htaccess распространяется на все вложенные папки, если вы не перекрываете правила специально во вложенных папках
Например, выбирая с 0 на 12 вы будет задавать диапазон IP-адресов одной сети
Это надо перевести.
Знающие люди, подскажите несведущему.
А можно ли открывать доступ не по ip, а по адресу сайта? Или ip & адрес сайта?
1. Управление доступом к файлам и каталогам
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
А можно ли открывать доступ не по ip, а по адресу сайта? Или ip & адрес сайта?
По домену? Насколько я знаю — никак.
Это IP клиента, а не сервера. Какой у клиента может быть «адрес сайта»?
Например, для определенного сайта сделать возможность доступа к файлам на моем сервере, а для остальных закрыть доступ.
для определенного сайта сделать возможность доступа к файлам на моем сервере
Это оксюморон, извините. Когда компьютер, на котором хостится «сайт» (то есть который, кроме прочего, обслуживает http-запросы в качестве сервера) выступает в роли клиента, он не обладает такими свойствами «сайта», как «домен» или «адрес сайта». В роли клиента он имеет только IP, использующийся для сетевого соединения, по которому и возможна блокировка.
А вот и не правда. В роли клиента может быть не только ип адрес, может быть и fqdn (если конечно ДНС запись имеется и ДНС настройки сервера позволяют резолвинг делать).
Строка типа:
запретит доступ к ресурсу если клиентский ип резолвится как 123-whatever-dsl.provide.net или natted.whatever.com
Днс проверка происходит вне зависимости от того что стоит в
Строка типа:
Deny from .net whatever.com
запретит доступ к ресурсу если клиентский ип резолвится как 123-whatever-dsl.provide.net или natted.whatever.com
Днс проверка происходит вне зависимости от того что стоит в
HostnameLookups
— On или Off.Можно делать редирект через RewriteRule, если домен указан не правильно.
Но это по сути не ограничение доступа
Но это по сути не ограничение доступа
Вы знаете, я ее переводил потому что действительно новичок и многого из этого не знал, а 0/12 в ступор не вогнали. Судя по количеству добавивших статью в избранное — не одному мне это оказалось интересно.
Если я использую обычный хостинг, а не выделенный сервер, то какой хостер мне разрешит копаться в файлах конфига апача и вносить там свои правки? И я могу одним файликом задать конкретные правила для конкретной директории без того, чтобы лезть в конфигурационный файл сервера, так чем это плохо и почему не решает конкретных проблем?
Обход диалога загрузки
Спасибо, при загрузке PDF файлов очень поможет — а то клиенты понаставят плагинов для просмотра PDF в браузере, потом спрашивают как сохранить файл.
Да, тоже сталкивался с претензиями «не работает скачивание нашего прайса/предложения/», и даже после объяснения причин все равно у клиента оставалось недовольство полученным результатом.
Да, вы правы, это не панацея. Лично я применил этот способ на практике только раз — на проекте работающем на Instancms. Там была проблема — у каждого пользователя есть собственное хранилище файлов, куда он может заливать допустимые форматы и давать прямую ссылку на скачивание залитых файлов. Так вот архив .zip скачивался, а архив .rar считывался и выводился набором символов в новой вкладке. Правка в .htaccess помогла решить проблему. Так что от всего не спасает, но некоторые вопросы решает)
При правильных заголовках такого не должно происходить, какие бы плагины не стояли.
Мой вариант: github.com/Claud/.htaccess/blob/master/.htaccess там тоже достаточно полезных правил и в все прокомментировано.
В пп 4 забыты поисковые пауки работающие с изображениями.
Желательно разрешить поисковым системам ссылаться на ваши изображения.
Я так же добавил вместо запрета — замену изображения на другое изображение ворам вашего контента.
У меня воришкам отображается — Читай оригинал на сайте.таком-то!
Желательно разрешить поисковым системам ссылаться на ваши изображения.
Я так же добавил вместо запрета — замену изображения на другое изображение ворам вашего контента.
У меня воришкам отображается — Читай оригинал на сайте.таком-то!
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?(.*)vasilisc.com(.*) [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?(.*)?yandex.(.*) [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?(.*)?google.(.*) [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?(.*)?yahoo.(.*) [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?(.*)?mail.(.*) [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?(.*)?bing.(.*) [NC]
RewriteRule (.*)?\.(jpg|jpeg|png|gif)$ /путь/к/vasilisc.com/images/bolt2.png [L]
А подскажите как сделать работающий редирект с https на http? Уже всё перепробовал, так и забросил.
Пробовал:
не работает
не работает
не работает
Пробовал:
RewriteCond %{HTTPS} =on
RewriteRule .* http://site.ru%{REQUEST_URI} [R=301,L]
не работает
RewriteCond % ^443$ [OR]
RewriteCond % =on
RewriteRule ^(.*)$ http://site.ru/ [R=301,L]
не работает
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
не работает
Попробуйте:
по идее должно работать.
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
по идее должно работать.
Пробовал, не работает, последняя строка в моём предыдущем сообщении.
Может быть в конфигурации сервера что-то. Вообще по идее должно работать. А до этого у вас не стоит RewriteRule на HTTPS? Понимаю что слишком просто, но иногда ответы на поверхности.
Возможно, техподдержка хостинга не может мне чётко ответить. Но зато чётко говорит, что менять ничего не будут. Нет, не стоит.
А ведь не исключено что именно хостер и может это решить. Google нашел прецедент:
otvety.google.ru/otvety/thread?tid=05f7b281b7896393
otvety.google.ru/otvety/thread?tid=05f7b281b7896393
А так?
и что значит не работает — ничего не происходит?
RewriteEngine On RewriteCond %{SERVER_PORT} ^443$ RewriteRule ^.*$ http://%{HTTP_HOST}%{REQUEST_URI} [L,QSA]
и что значит не работает — ничего не происходит?
DocumentRoot под HTTP и HTTPS разный? Может быть, просто .htaccess не туда пишете.
Защита сайта от вставки изображений с других ресурсовТакая защита не даст яндексу и гуглу индексировать картинки.
Может быть, кто-нибудь знает, как запретить перенаправление после rewrite?
Есть вот такое правило:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (/m)?/([^/]+)\.(jpg|jpeg|gif|png)$
RewriteRule .* http:// my.domen.com/user/upload%1/%2.%3
Сейчас, когда пользователь заходит по ссылке my.domen.com/12345.png, его просто редиректит на полную ссылку на изображение my.domen.com/user/upload/12345.png.
А можно ли сделать так, чтобы в строке состояния пользователь видел ссылку my.domen.com/12345.png, но показывалось изображение, которое лежит по ссылке my.domen.com/user/upload/12345.png?
Есть вот такое правило:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (/m)?/([^/]+)\.(jpg|jpeg|gif|png)$
RewriteRule .* http:// my.domen.com/user/upload%1/%2.%3
Сейчас, когда пользователь заходит по ссылке my.domen.com/12345.png, его просто редиректит на полную ссылку на изображение my.domen.com/user/upload/12345.png.
А можно ли сделать так, чтобы в строке состояния пользователь видел ссылку my.domen.com/12345.png, но показывалось изображение, которое лежит по ссылке my.domen.com/user/upload/12345.png?
5. Блокировка посетителей, перешедших с определенного домена
А как запретить вход всем, кроме рефереров с конкретного сайта?
А как запретить вход всем, кроме рефереров с конкретного сайта?
Sign up to leave a comment.
Полезные хаки и сниппеты для .htaccess