Для тех, кто еще не работал с данным файлом, предлагаю Вам основы, которые помогут Вам решить некоторые задачи. Сам по себе .htaccess, очень полезная штука. С его помощью Вы можете открыть или закрыть доступ, контролировать трафик и обезопасить свой сайт от вредоносных действий.
Как создать файл .htaccess
У некоторых сайтов уже по умолчанию есть .htaccess. Его создает система управления сайтом или как многие называют - движок. Тот же WordPress сам создает по умолчанию этот файл, который по сути пуст и в нем нет кода, только две строки с комментариями.
Если же у Вас нет такого файла, то вы можете с легкостью его создать. Он должен находится в корневой папке Вашего сайта. Вот несколько шагов в создании:
- 1. Открываем текстовый редактор или тот который используете для верстки, советую Notepad++, если же он Вам не знаком, то обычный Блокнот.
- 2. Ничего в нем не пишем и просто сразу сохраняем нажав на пункт меню "Файл", выбрать "Сохранить как".
- 3. В открывшемся окне, там где стоит выбор "Тип файла" выбрать "Все файлы" или "All files"
- 4. В строке, где нужно указать имя, нужно прописать .htaccess
- Нажать на кнопку"Сохранить", чтобы завершить создание.
Теперь Вы можете открывать его для редактирования и добавлять нужный код, чтобы иметь возможность управлять сайтом. Предлагаю Вам рассмотреть самые популярные команды для .htaccess, которые могут Вам пригодится, и с которыми приходилось сталкиваться мне.
Перед каждым редактированием .htaccess, сохраните его резервную копию, чтобы потом, в случаи не правильной работы сайта, вы смогли вернутся к исходному состоянию.
Как указать кодировку сайта в .htaccess
Если Вам нужно указать кодировку в .htaccess, то Вам нужно открыть его и добавить всего лишь одну строку кода, который укажет кодировку. Для UTF-8:
1 | AddDefaultCharset UTF-8 |
для windows-1251:
1 | AddDefaultCharset CP1251 |
Как запретить доступ к определенным файлам или самому .htaccess
Если у Вас возникла надобность нужда в том, чтобы запретить посетителям доступ к определенным файлам или .htaccess то добавьте следующий код:
1 2 3 4 | <Files .htaccess> order allow,deny deny from all </Files> |
Как заблокировать доступ к файлам определенного типа в .htaccess
1 2 3 4 | <FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$" > Order Allow,Deny Deny from all </FilesMatch> |
Как запретить просмотр директорий в .htaccess
Если у Вас возникла надобность в том, чтобы запретить посетителям просматривать структуру вашего сайта, то добавьте следующий код:
1 | Options -Indexes |
Если, Вам наоборот нужно открыть доступ к просмотру директорий, то поможет следующий код.
1 | Options All +Indexes |
Как ускорить время загрузки сайта за счет сжатия файлов
Можно сжимать любые файлы, например, для сжатия HTML-файлов нужно добавить вот такую вот строку
1 | AddOutputFilterByType DEFLATE text/html |
Если же это например текстовый файл, то надо так:
1 | AddOutputFilterByType DEFLATE text/plain |
Для JavaScript:
1 | AddOutputFilterByType DEFLATE application/javascript |
Есть код, который одновременно сожмет все javaScript, HTML и CSS файлы при помощи GZIP. Это вот такой вот код:
1 2 3 4 5 6 7 8 9 10 | <IfModule mod_gzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text\.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image\.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* </IfModule> |
Как запретить вставлять изображения со сторонних ресурсов
Если по какой-то причине, у Вас возникла потребность в том, чтобы запретить пользователям своего сайта добавлять какие бы то не было изображения, то просто, добавьте такой вот код:
1 2 3 4 | RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?: //(www\.)?yourdomain.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L] |
yourdomain.com - замените на домен Вашего сайта, чтобы скрипт работал.
Как заблокировать посетителей, которые пришли из определенного сайта.
Если для Вас имеет значение то, чтобы посетители какого-то сайте не переходили на Ваш сайт, так сказать, ограничить трафик из определенного домена, Вам поможет, вот такой вот не хитрый код:
1 2 3 4 5 6 | <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_REFERER} site1.com [NC,OR] RewriteCond %{HTTP_REFERER} site2.com [NC,OR] RewriteRule .* - [F] </ifModule> |
Как видите, можно блокировать сразу с нескольких добавляя строки, меняя только домены.
Кэширование файлов в .htaccess
Кэширование файлов помогает ускорить работу Вашего сайта. Добавьте код, в котором указаны расширения файлов, которые следует кэшировать.
1 2 3 | <FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$" > Header set Cache-Control "max-age=2592000" </FilesMatch> |
Иногда бывает, что файлы не включены в список, но всеравно кэшируются браузером. Если таким файлам надо отключить кэширование, то код будет другим и в нем указываются расширения.
1 2 3 | <FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$" > Header unset Cache-Control </FilesMatch> |
Как изменить главную страницу в .htaccess
Стандартной страницей загрузки являются страницы - index.html, index.php, index.htm.
1 | DirectoryIndex newpage.html |
Просто укажите новую страницу, вместо newpage.html.
Как заблокировать доступ к сайту по IP адресу
Про данный способ, можете прочитать в этой статье - Как заблокировать доступ к сайту по IP адресу
Как убрать index.php, index.html из URL адреса
Этот способ тоже описан в статье - Как убрать index.php, index.html из URL адреса
Вот такие коды, могут помочь Вам в работе с Вашим сайтом. Как и говорил, это лишь малая часть, того что можно сделать с помощью .htaccess.
На этом все, спасибо за внимание. 🙂