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