.htaccess файл является очень полезным инструментом, с помощью которого можно делать много вещей. В этой статье я раскажу оснавные варианты
использования .htaccess файлов, которые любой разработчик веб-страниц должен иметь в своем комплекте инструментов.
1. Запрет на загрузку файлов с внешних сайтов.Нередки случаи, когда люди размещают картинки, опубликованные на вашем сайте, на сторонних ресурсах, тем самым расходуя ваш трафик и создавая ненужную нагрузку на ваш сервер. Приведенный код, позволит предотвратить загрузку ваших изображений сторонними сайтами. Код необходимо расположить в конце вашего файла .htaccess.
Options +FollowSymlinks#Запрет на загрузку файлов с внешних сайтов RewriteEngine OnRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http://(www.)?thetech.com.ua/ [nc]RewriteRule .*.(gif|jpg|png)$ http://адрес вашего сайта/img/ban_on_downloading.gif[nc]
Не забудьте прописать в код адрес вашего сайта и создать изображение ban_on_downloading.gif, которое будет показано вместо запрашиваемой картинки.
2. Блокирование запросов от нежелательных UserС помощью этого правила можно заблокировать нежелательные User Agent, которые могут быть потенциально опасными или перегружать сервер ненужными запросами.
#Блокируем запросы от плохих ботовSetEnvIfNoCase user-Agent ^FrontPage [NC,OR]SetEnvIfNoCase user-Agent ^Java.* [NC,OR]SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]SetEnvIfNoCase user-Agent ^Zeus [NC]<limit get=»" post=»" head=»">Order Allow,DenyAllow from allDeny from env=bad_bot</limit>
Список User Agent браузеров, роботов и пауков поисковых машин, веб-каталогов, менеджеров закачек, спам-ботов и плохих ботов можно легко найти в интернете.
3. Запрет доступа для всех IP адресов и исключения. Для того, что бы запретить доступ к вашему сайту всем или разрешить только отдельным IP-адресам, добавьте следующий код в ваш файл .htaccess.
#Запрет доступа для всех IPErrorDocument 403 http://адрес вашего сайта Order deny,allowDeny from all Allow from 77.87.194.47 Allow from 77.87.195.48
4. Создание собственных страниц ошибок. С помощью следующего кода вы сможете заменить стандартные страницы ошибок на свои
ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php.
5.Удаление www в urlЧасто, с точки зрения SEO, лучше не использовать приставку www в своих URL. Следующий отрывок удалит www из вашего url и переадресует любой url с www к адресу без www.
RewriteEngine OnRewriteCond %{HTTP_HOST} !^your-site.com$ [NC]RewriteRule ^(.*)$ http://your-site.com/$1 [L,R=301]
6.Перенапровление.Если вы перенесли доменное имя или хотите перенаправить пользователей на определенную страницу без санкций со стороны поисковиков, используйте следующий код:
Redirect 301 /?p=452 http://адрес сайта/index.php
7. Создание черного списка IP адресов. Надоели спам-сообщения или комментарии определенного пользователя? Просто заблокируйте их IP адреса с помощью приведенного кода.
#Создаем черный список IP адресовallow from alldeny from 193.168.100.100deny from 214.75.
Узнать IP адреса пользователей можно или в логах Apache или с помощью серверов статистики.
8. Установка e-mail адреса администратора сервера по умолчанию. Для выполнения данного действия используйте следующий код.
ServerSignature EMail SetEnv SERVER_ADMIN admin@programulina.com
admin@programulina.com – ваш e-mail адрес.
9. Защита определенного файла. С помощью приведенного кода можо запретить доступ к любому файлу на вашем сайте – при запросе будет выдаваться страница ошибки 403. Для примера, можно повысить уровень безопасности сайта закрыв доступ к файлу .htacess.
#Защищаем .htaccess файл<files .htaccess=»">order allow,denydeny from all</files>
10. Установка страницы по-умолчанию. Обычно страницей по умолчанию является index.html/php. С помощью данного кода можно настроить по-умолчанию любую страницу.
#Установка страницы по-умолчаниюDirectoryIndex test.php
11. Защита паролем папок и файлов. Для того. что бы включить проверку пароля для доступа в определенную папку или к файлу на вашем сервере, используйте данный код.
#защита паролем файла<files secure.php=»">AuthType BasicAuthName «Prompt»AuthUserFile /var/www/thetech.com.ua/.htpasswdRequire valid-user</files> #защита паролем папкиresidesAuthType basicAuthName «This directory is protected»AuthUserFile /var/www/thetech.com.ua/.htpasswdAuthGroupFile /dev/nullRequire valid-user
Для того, чтобы организовать доступ к файлу по паролю, необходимо создать файл .htpasswd и внести в него пару логин-пароль в формате user:password.
Но, в таком случае пароль будут в открытом виде, что не безопасно. Поэтому, воспользуйтесь консольной командой htpasswd:
htpasswd -c /var/www/thetech.com.ua/.htpasswd user
где /var/www/thetech.com.ua/.htpasswd путь к файлу и сам файл
user пользователь которого мы создаем. Вводим нужный пароль два раза и все готово.
Ну или воспользуйтесь онлайн сервисами для генерации хешированых паролей.
13. Усиление кеширования. Использование данного правила не означает прямое ускорение загрузки вашего сайта. Оно предназначено для более быстрой загрузки сайта для уже заходившего на него пользователя, путем отправки статуса 304 для тех элементов, которые не обновлялись. Таким образом, при повторной загрузке страницы браузер посетителя не будет заново скачивать изображения, скрипты или CSS, а выведет те файлы, которые уже хранятся в его кеше. Можно изменять срок жизни кеша, путем корректирования его значения в пределах от секунд (seconds ) до года (year). В примере указан 1 год.
#Усиление кешированияFileETag MTime Size<ifmodule mod_expires.c><filesmatch «.(jpg|gif|png|css|js)$»>ExpiresActive onExpiresDefault «access plus 1 year»</filesmatch></ifmodule>
14. Сжатие компонентов сайта с помощью Gzip. При использовании Gzip, сервер будет сжимать файлы перед отправкой их пользователю, благодаря чему ваш сайт будет грузиться быстрее.
#Сжатие компонентов сайта с помощью Gzip.
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascriptBrowserMatch ^Mozilla/4 gzip-only-text/htmlBrowserMatch ^Mozilla/4.0[678] no-gzipBrowserMatch bMSIE !no-gzip !gzip-only-text/html
Необходимо учитывать, что включение компрессии приведет к большей нагрузке на процессор сервера.
15. Запрет на просмотр содержимого папки. Для того, что бы обеспечить безопасность сервера и ограничить доступ к директориям, которые могут содержать конфиденциальную информацию, используйте данный код.
#Запрет на просмотр содержимого папкиOptions All -Indexes
16. Запрет комментариев от пользователей без Referrer. Чаще всего спам-боты обращаются напрямую к файлу wp-comments-post.php, не заходя на страницы записей блога. Данный код позволит заблокировать комментарии, отправленные пользователями, пришедшими «ниоткуда», позволяя комментировать тем читателям, которые перешли на страницу с вашего блога или с какой-то другой страницы (например по запросу в поисковой системе).
#Запрещаем комментарии от пользователей без Referrer
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post.php*
RewriteCond %{HTTP_REFERER} !.*thetech.com.ua.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
17. Изменение расширения файла в URL С помощью данного кода можно удалить или изменить расширение файла (например вместо .php, можно написать .html) в URL-адресе страницы.
#Изменение расширения файла в URLRewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]
18. Защита сайта Следующий код позволяет защитить сайт от script enjection и нежелательных модификаций _REQUEST или GLOBALS.
#Отслеживание сим-ссылокOptions +FollowSymLinks #Запускаем url_rewritingRewriteEngine On #Блокирование ссылок, содержащихRewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] #Блокирование скриптов, которые пытаются изменить переменные PHP Globals: RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR] #Блокирование скриптов, которые пытаются изменить переменную _REQUEST:RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) #Перенаправление всех подобных на страницу с ошибкой 403 – запрещеноRewriteRule ^(.*)$ index.php [F,L]
Эти простые 20 примеров, которые помогут вам для редиректа htaccess, ограничения доступа htaccess и для создания файлов ошибок, таких как 301, 401, 403
Отзывы