Pull to refresh
  • by relevance
  • by date
  • by rating

Практический CSS/JS: архивируем все!

Client optimization *
Translation
Примечание: ниже частичный перевод статьи «Compress JavaScript and CSS without touching your application code», в которой описывается статичное сжатие CSS- и JS-файлов на сервере и корректная выдача их затем клиенту. Далее даны мои комментарии с более комплексным решением. Приношу извинения, если для кого-то тема будет слишком знакома или неинтересна: в Рунете нормальной статьи на данную конкретную тематику обнаружить не удалось.

Для обеспечения корректного архивирования вашего веб-контента, по-видимому, наиболее общий подход будет заключаться в выполнении по порядку следующих пунктов:

  • Проверить, умеет ли клиент принимать файлы в формате gzip-encoded.
  • Обеспечить соответствующий вывод на стороне сервера через gzip-функции, либо уповать на то, что всем этим займется непосредственно Apache.
  • Поиграться с .htaccess, чтобы обеспечить корректный content type.


читать дальше на webo.in →
Total votes 38: ↑36 and ↓2 +34
Views 2.4K
Comments 68

Вставка последнего слеша.

Lumber room

Как правильно делать вставку последнего слеша средствами .htaccess?


Необходимо, что бы вставлялся последний слеш в адресной строке.
Необходимо, что бы это работало с «виртуальными папками».
Необходимо, что бы это было мультидоменно. (два доменных имени)
Необходимо, что бы это не вызывало других проблем.
ErrorDocument 401 «Access Denied»
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ httр://%{HTTP_HOST}/$1/ [L,R=301]


UPD: Ошибка вида: example.com/cgi-bin/401.cgi/, выскакивающая и другие подобные ошибки, редиректящие на файл '/cgi-bin/*.cgi', означает, что в настройках сервера, нехватает записей ErrorDocument.
Т.е. в моём случае, необходимо было прописать в .htaccess:
ErrorDocument 401 «Access Denied»
или
ErrorDocument 401 /path_to_401_error_file.html
Total votes 24: ↑13 and ↓11 +2
Views 254
Comments 8

Интересная проблема в .htaccess или спецсимволы, mod_rewrite и тег C++.

Lumber room
Недавно, при работе над своим проектом (сайт со статьями на тему «как сделать»), столкнулся с проблемой в работе mod_rewrite. Суть проблемы заключалась в следующем: в облаке тегов, при переходе на тег «C++» (обработанный urlencode и ставший C%2B%2B) я попадал на тег «С » (буква «С» и 2 пробела).
читаем дальше
Total votes 20: ↑16 and ↓4 +12
Views 1.9K
Comments 15

Заражение сайтов по FTP

Lumber room
Добрый вечер, уважаемые хабравчане!

У меня сложилась неприятная ситуация. Сделал сайт клиенту. Он доволен, деньги получены.
Но через месяц я обнаружил что при заходе на сайт начинает ругаться антивирус Avira. Говорит, что страница заражена WebGen. Просмотрев index.php обнаружил, что в конце файла стоит iframe который загружает вредоносный код. Вроде бы дело ясное — полечил машину ( Avira, Avast затем cureit! ), сменил пароль на хостинге. Пароль никому не сообщал.

Читать дальше →
Total votes 15: ↑10 and ↓5 +5
Views 601
Comments 51

Тормозит веб-сервер. Настройка на примере www.ochevidets.ru

Website development *
Я оказываю услуги по настройке web- и БД-серверов. На днях ко мне обратился Иван Усачёв — владелец портала ochevidets.ru с просьбой избавить сайт от торможения.

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

UPDATE: Статья была написана в 2010 году. Кое-что изменилось: вышли новые версии программ, у nginx изменились некоторые директивы и появились новые. Учитывайте это.

Ниже я опишу, что я предпринял для решения проблемы.
Total votes 197: ↑152.5 and ↓44.5 +108
Views 26K
Comments 407

О чудесах

Website development *
Время от времени каждый из нас может вспомнить ситуации, когда ну вот всё правильно делаешь, а система «чудит». Бьешься, пытаешься найти проблему, уже и консиллиум вокруг себя собрал — никто не может понять, в чем дело, а потом проходит какое время и наступает озарение. И понимаешь, что сглупил, что вот она, ошибка. На поверхности лежала. Потом такие байки можно в профессиональной тусовке рассказывать.

Читать дальше →
Total votes 116: ↑88 and ↓28 +60
Views 1.6K
Comments 97

Как на самом деле работает mod_rewrite. Пособие для продолжающих

Sprinthost corporate blog
image
Эта статья выросла из идеи продвинутого обучения наших сотрудников технической поддержки работе с mod_rewrite. Практика показала, что после изучения имеющихся в большом количестве учебников на русском языке саппортам хорошо дается решение шаблонных задач, но вот самостоятельное составление правил происходит методом проб и большого количества ошибок. Проблема заключается в том, что для хорошего понимания работы mod_rewrite требуется изучение оригинальной англоязычной документации, после чего — либо дополнительные разъяснения, либо часы экспериментов с RewriteLog.

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

Я предполагаю, что читатель уже знаком с тем, что такое mod_rewrite, и не буду описывать его основы, которые легко найти в интернете. Также нужно отметить, что в статье освещается работа mod_rewrite при использовании его директив в файле .htaccess. Отличия при работе в контексте <VirtualHost> изложены в конце статьи.

Итак, вы изучили mod_rewrite, составили несколько RewriteRule и успели столкнуться с бесконечными перенаправлениями, со случаем, когда правило почему-то не ловит ваш запрос, а также с непредсказуемой работой группы правил, когда последующее правило неожиданно изменяет запрос, кропотливо подготовленный правилами предыдущими.

Почему так происходит?
Читать дальше →
Total votes 208: ↑203 and ↓5 +198
Views 267K
Comments 25

Мой вариант .htaccess

Website development *
В одном из предыдущих тематических постов о .htaccess для нубов я хотел предложить свой вариант с разными обработками и запретами, ну и определённой логикой структурирования, но так как карма была в минусе, то выкладываю сейчас.

Вашему вниманию мой вгляд на правила обработки URL с объяснениями и коментариями «почему так?».

Сперва логика


Объясню сперва логику:
1) все страницы имеют .html окончания.
2) все языки для страниц имеют вид pagename.en.html или pagename.html для языка по умолчанию. Никто, конечно, не запрещает иметь ссылки, где язык идёт вначале как /en/
3) «входной» скрипт только один в docroot.
4) Разрешены запросы на другие скрипты только в docroot
5) Соглашение по определению окончаний в url:
# site.com/
# site.com/index -> site.com/
# site.com -> site.com/
# site.com/file/ -> site.com/file.html
# site.com/file -> site.com/file.html
# site.com/dir/file ->site.com/dir/file.html
# site.com/dir/file/ -> site.com/dir/file.html
Но это можно менять.

Читать дальше →
Total votes 90: ↑57 and ↓33 +24
Views 167K
Comments 51

Простая настройка .htaccess для production

Website development *
Иногда, когда сайты хостятся на shared-хостинге или работа идет только с Apache, нужно сделать максимальную оптимизацию работы сервера и сайта соответсвенно. В статье приводятся несколько настроек, которые позволят вашему сайту работать лучше.

Читать дальше →
Total votes 94: ↑70 and ↓24 +46
Views 18K
Comments 49

SiteLock – визуальный генератор пароля для сайтов от PHPShop

PHPShop Software corporate blog CMS *Information Security *
Мы часто сталкиваемся с задачей по созданию дополнительного пароля на сайт и панель управления — это дает большую уверенность в сохранности данных, и, конечно, рекомендуем использовать этот метод всем и почаще. Конечно, есть много способов поставить пароль, но все-таки, все они требуют наличия определенных знаний от клиента. Для облегчения жизни клиентам, мы создали бесплатный визуальный интерфейс генерации паролей — SiteLock, который подходит не только к PHPShop, но и к любым другим CMS. Сгенерированные пароли, в связке .htaccess + .htpassw, сразу копируются на сайт, через встроенный ftp-менеджер.

Описание процесса создания пароля
Total votes 16: ↑3 and ↓13 -10
Views 3.7K
Comments 4

[Доморощенный] web honeypot своими руками

Information Security *Programming *
Tutorial
В статье «Что и зачем ищут на сайтах «боты тёмной стороны силы»» мы рассмотрели типичные примеры из журналов разных сайтов. Однако намного интереснее вариация на тему радиоигры в разведке. Что это такое и как его готовить — расскажу далее.

Читать дальше →
Total votes 24: ↑13 and ↓11 +2
Views 13K
Comments 12

Борьба с «плохими» URI, спамерами и php-шеллами — личный опыт

Information Security *Website development *PHP *
Sandbox
Полагаю, все веб-программисты проходят в той или иной степени одинаковый путь. Я основываюсь на своем личном опыте. Для меня в начале постижения этой науки создание сайта было на первом месте. Только по прошествии значительного времени я осознал, что сайты еще и вскрывают. Прочитав, как это делается, я удивился, на сколько просто по неопытности превратить свой сайт в «проходной двор» и стал уделять безопасности определенное внимание. По крайней мере я стал фильтровать входные параметры страниц.

На втором этапе я с удивлением обнаружил, что существуют такие звери, как PHP-shell. В этом мне помог Касперский, когда заблокировал доступ к моему столь любимому сайту. Следующим откровением было то, что вскрыть могут не только вас, но и хостинг. При этом шеллы появляются на вашем сайте с удивительной регулярностью, неизвестно откуда и делают, естественно, что хотят. Например, редактируют файлы .htaccess и закрывают их редактирование для всех, в том числе и для владельца.

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

Что же нужно иметь ввиду и что можно сделать для создания относительно безопасного сайта?
Читать дальше →
Total votes 24: ↑15 and ↓9 +6
Views 16K
Comments 89

Рекурсивное множественное добавление IP для блокировки в файл .htaccess

Hosting *nix *Server Administration *
Задача. На web-сервере в домашней папке ~/public_html привычным образом располагаются каталоги различных сайтов. Таким же привычным образом в каждом каталоге сайта располагается файл .htaccess. Известно, что с помощью этого файла, в том числе, ограничивается доступ по IP. В моём случае этот файл выглядит так:

Order Allow,Deny
Allow from all
Deny from 194.87.147.196

Эта запись (блок) встречается в каждом файле .htaccess каждого сайта в папке public_html всего один раз. И если требуется заблокировать доступ ко всем сайтам по IP, например 194.165.16.76 – в каждый файл, после строки «Allow from all» добавляется новая строка:

Deny from 194.165.16.76

Вопрос: что же делать, когда на сервере не 2 и не 3 сайта, а намного больше?
Вот как я попытался решить эту задачу.
Читать дальше →
Total votes 19: ↑11 and ↓8 +3
Views 5K
Comments 16

19 полезных возможностей файла .htaccess

Click.ru corporate blog Search engine optimization
19 полезных возможностей файла .htaccess


Спорим, о некоторых вы не подозревали. Мы собрали варианты применения .htaccess для улучшения работы сайта. Он часто используется оптимизаторами для корректной настройки 301 редиректов. Но этим возможности файла не ограничиваются. Тут и безопасность, и оптимизация, и параметры отображения — с помощью .htaccess вебмастер может сделать много полезного, чтобы сайт работал корректно.

Читать дальше
Total votes 28: ↑17 and ↓11 +6
Views 56K
Comments 16