Работаем с .htaccess
- Понедельник, 29 августа 2011, 18:43
- Веб-дизайн, Избранное
- 535 views
- 7 коммент.
В данной статье я постарался подробно рассказать о том, как можно использовать .htaccess для защиты и уменьшения скорости загрузки вашего сайта.
Что такое .htaccess
.htaccess (от. англ. hypertext access) — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла.
.htaccess является подобием httpd.conf с той разницей, что действует только на каталог, в котором располагается, и на его дочерние каталоги. Возможность использования .htaccess в том или ином каталоге указывается в httpd.conf (директива AllowOverride).
Файл .htaccess может быть размещён в любом каталоге. Директивы этого файла действуют на все файлы в текущем каталоге и во всех его подкаталогах (если эти директивы не переопределены директивами нижележащих файлов .htaccess). Для того чтобы эти файлы .htaccess можно было использовать, необходимы соответствующие настройки главного конфигурационного файла (значение директивы AllowOverride должно быть установлено All). Как правило, подавляющее большинство хостеров разрешают использовать свои файлы .htaccess.
Пути к файлам и каталогам должны указываться от корня сервера, например, /var/www/domain.com/htdocs/
Для чего нужен .htaccess
1. Авторизация и аутентификация
Файлы .htaccess очень часто используются для указания ограничений для конкретной директории. Файл .htaccess часто используется вместе с .htpasswd, который сохраняет имена пользователей и их пароли.
2. Собственные страницы ошибок
Изменение страниц, которые отдаются при ошибках на стороне сервера, например HTTP 404 Not Found.
3. Изменение URL-адресов
Серверы используют .htaccess для изменения длинных, излишне сложных URL-адресов на короткие и легко запоминающиеся.
4. Контроль кеша
Файлы .htaccess позволяют серверу контролировать кеширование веб-браузерами и кеширующими прокси для уменьшения использования полосы, загрузки сервера и лагов.
.htaccess на практике
Не забывайте бекапить старые версии файл, на случай если что-то пойдёт не так.
1. Использование кэша браузера
Следующий код отвечает за кеширование браузерами страниц вашего сайта или блога. Это очень важный показатель, напрямую влияющий на скорость загрузки сайта. Что, в свою очередь, будет по достоинству оценено, как пользователями, так поисковыми системами.
# Turn on Expires and set default to 0
ExpiresActive On
ExpiresDefault A0
# Set up caching on media files for 1 year (forever?)
ExpiresDefault A29030400
Header append Cache-Control «public»
# Set up caching on media files for 1 month
ExpiresDefault A604800
Header append Cache-Control «public»
# Set up 2 Hour caching on commonly updated files
ExpiresDefault A7200
Header append Cache-Control «proxy-revalidate»
# Force no caching for dynamic files
ExpiresActive Off
Header set Cache-Control «private, no-cache, no-store, proxy-revalidate, no-transform»
Header set Pragma «no-cache»
Данный код даёт указание браузеру, какие элементы следует кешировать и на какой период времени.
2. Сжатие статичных данных
Этот код отвечает за уменьшение объёма данных, передаваемых между сервером и пользователем, за счет их сжатия.
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
3. Защита сайта с помощью .htaccess
a. Защищаем WordPress от XSS-инъекций
Этот код блокирует использование XSS-инъекций и попытки модифицировать переменные GLOBALS и _REQUEST. Вставьте код в ваш файл .htaccess, расположенный в корне сайта.
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
b. Используем .htaccess для защиты файла wp-config
Следующий код запрещает доступ к папке wp-config.
order allow,deny
deny from all
c. Защита директорий на сервере от просмотра
Очень важный момент. Очень часто многие хостеры позволяют просматривать директории на своих серверах. Фактически любой желающий может увидеть содержимое почти любых директорий. Это небезопасно, поэтому советую это сразу запретить. Следующий код закрывает доступ ко всем дирректориям вашего сайта. Например к папкам wp-includes и т.д.
Options All -Indexes
Вы, так же, можете либо добавить пустые файлы index.html в папки, просмотр которых хотели бы запретить.
В свободное от работы время, рекомендую вам посетить дом 2 официальный сайт все серии. Этот сайт не оставит ни кого равнодушным.
Если публикация вам понравилась, то вы можете подписаться на материалы BlogPressa.ru .
Читайте так же:
Блог Парад №1.
Проблема безопасности WordPress: как сменить логин «admin».
Robots.txt для WordPress или давайте дружить с поисковиками.

Афтар ну это htaccess как бэ не спасает=)) Добро пожаловать на мой сайт truehackers.ru
[Ответить]
Дмитрий Белинский Reply:
августа 31, 2011 at 20:26
Конечно, при желании, можно взломать всё что угодно) Единственно что остаётся — это сделать этот процесс максимально сложным. ) Судя по вашему сайту вы должны разбираться в подобных вещах. Если не затруднит, поделитесь опытом, какие, по вашему мнению, самые уязвимые места в wordpress?
[Ответить]
еще полезная операция в .htaccess делать склейку доменов
[Ответить]
Я как-то начудил в нем копаясь….ну это наверное по неопытности…
[Ответить]
.htaccess не защищает сайт почти.
Но он может закрыть важные дыры, например запрет на доступ к папке или файлу, или например запрет вывода содержимого папки.
Но от других дыр он слабо защищает, для этого надо закрывать их в самом коде или настройках сервера.
[Ответить]
А для меня эта информация имеет вес, поскольку я совсем не хакер. И принять хоть какие то меры было бы не плохо. Спасибо за материал. Добавлю Вас в закладки.
[Ответить]
Тот кто захочет взломать, тот взломает, и то что мы внесем какие-то изменения просто немного затянут процесс…
[Ответить]