.htaccess

Полезные сниппеты кода для файла .htaccess, собранные в одном месте.

Картинка-заглушка, показывается если нужное изображение не найдено в текущей директории

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule \.(gif|jpe?g|png|bmp) /cars-pics/!404.png [NC,L]

Популярные редиректы

RewriteEngine On
### to www ####
RewriteCond %{HTTP_HOST} ^example.ru$ [NC] # домен без www перекидывать в любом случае
RewriteRule ^(.*)$ https://www.example.ru/$1 [R=301,L]

### хороший https-редирект ###
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

### http://wiki.example.com/index.php~n=ЦИФРЫ/ЦИФРЫ --> http://example.com/wiki/ЦИФРЫ/ЦИФРЫ ###
# вообще-то вместо вроде ~ должен быть ?, но так почему-то не получилось сделать
RewriteRule ^index\.php~n=([0-9]+)/([0-9]+)$ http://example.com/wiki/$1/$2 [R=301,L]

###  не редирект, но создание нового короткого адреса, по которому отдается контент длинного адреса ### 
RewriteRule ^question_([0-9]+).html$ /questions/question_$1.html [L,QSA]

### редирект для страницы вида: /events/exhibitions/exhibitions_756.html ,  а также любых подобных страниц вида: /*/*/*_*.html  ###
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)_([0-9]+).html$ /index/index_$4.html [R=301,L]

Борьба с DOS-атаками и парсингом:

# отсеиваем злых ботов по User-Agent
SetEnvIfNoCase User-Agent "^DigExt; DTS Agent" bad_bot

# открываем доступ только себе
deny from all 
allow from *.*.*.* # мой текущий IP

Статьи темы:

Диагностика VPS или что делать, если сервер упал

речь о сервере под управлением CentOS и ISPmanager
Филипп Казаков

Если сервер упал и совсем не отвечает даже по прямому запросу по IP-адресу, то нужно его перезагрузить. Что делать, если это не помогло, читайте далее. В этой статье мы опишем свой непрофессиональный опыт администрирования серверов на базе CentOS, а именно выходов из самых разных стрессовых ситуаций собственными силами. Даже хорошая техподдержка хостинга - это не панацея, если проблема возникла в воскресенье, например. Или если она возникает периодически. Или если ее очень нужно решить прямо сейчас.

далее

Как в NetCat сгенерить страницы первого уровня вложенности?

то есть страницы вида domain.ru/question_NN.html ?
Филипп Казаков

Казалось бы, никак, так как архитектура системы предполагает, что объекты могут быть добавлены только в разделы. Даже корень сайта domain.ru по-умолчанию является зеркалом страницы domain.ru/Index/ Можно долго спорить о том, насколько это плохо или наплевать, но я лучше расскажу, как все-таки всунуть объекты на 1-й уровень вложенности, если очень хочется.

далее

Блог

Как отресайзить картинки батчем?

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

далее

Tilda Module: интеграция NetCat с Tilda.cc

Представляем нашу новую разработку, модуль интеграции CMS NetCat с платформой Tilda.cc. Модуль дает возможностью полуавтоматически размещать классные лендинги прямо в структуре вашего сайта!

далее

Как оптимально заархивировать файлы, чтобы распаковать их средствами ISPmanager?

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

далее

Как расшифровать бэкапы, зашифрованные ISPmanager?

В ISPmanager версии 5.52.0 и старше, реализована новая система резервного копирования, построенная на основе некоей ISPtar. И работает она... своеобразно. Попробуем разобраться, как именно.

далее

Весь блог тут