Htaccess файл — как создать файл .htaccess инструкция для новичков

Распечатать · Время на чтение: 12мин · Автор: · Опубликовано · Обновлено

playПрослушать эту статью

Как создать файл .htaccess.

Htaccess файл — как создать файл .htaccess новичку? Файл .htaccess,  как правило, имеет только расширение под Unix – системы. И приносит пользу сайтам под управлением сервера Apache.

Htaccess имеет набор правил для определенного сайта на сервере. Файл управляет многими параметрами конфигурации веб-сервера Apache. Apache — широко используемое серверное программное обеспечение для кроссплатформенных операционных систем.

Хотя синтаксис, который он использует, может поначалу немного сбивать с толку, этот .htaccess файл может делать много полезных вещей. Некоторые из его функций включают перенаправление, защиту паролем, ограничение доступа на основе определенных условий и многое другое. В этом посте мы рассмотрим, как создать и настроить .htaccess файл и реализовать несколько наиболее распространенных вариантов его использования.

Содержание статьи:

Инструкция для создания файла .htaccess

Настройки файла .htaccess.

Htaccess широко известен как «точечный файл», поскольку он начинается с точки. Точечные файлы почти всегда представляют собой файл конфигурации. Такие файлы могут быть для операционной системы или части программного обеспечения. По умолчанию операционная система скрывает точечные файлы в окнах поиска или в любом системном файловом менеджере. Обычно вам нужно выбрать опцию «Показать скрытые файлы» в настройках вашей операционной системы. Или вы можете использовать команду для отображения всех файлов в командной строке. ls -a

На сервере может быть несколько подобных файлов, и каждый файл всегда работает рекурсивно. Это означает, что каждый файл будет влиять на каталог, в котором он находится, а также на все файлы и подкаталоги.

  1. Для того, чтобы создать этот файл, достаточно воспользоваться любым доступным текстовым редактором (к примеру блокнотом).
  2. Название (.htaccess) — без кавычек и прочего.
  3. Сохраняем файл.
  4. Затем переносим его на Ваш сервер (хостинг) с помощью FTP клиента, обязательно в корневую директорию сайта. Вы должны передавать через ASCIIрежим. По умолчанию большинство FTP-клиентов будут передавать данные через режим, который неэффективен для передачи точечных файлов. В вашем FTP-клиенте должна быть возможность установить режим передачи. BINARY
  5. Далее его можно редактировать как угодно, но обязательно обновлять версию файла на сервере (хостинге). Если по какой-то причине кажется, что правила не вступили в силу, это может быть связано с неправильными правами доступа к файлам. Права доступа к файлам .htaccess должны быть установлены на 755. В вашем FTP-клиенте должна быть опция «Права доступа к файлам». Кроме того, вы можете запустить команду в терминале .chmod 755 .htaccess (лучше указать полный адрес до файла).

Простой пример перенаправления страницы

Одно из основных популярных правил в  .htaccess — перенаправление страниц. Вы можете направлять с любого относительного пути в вашем директоре сайта. А также можете перенаправить страницу либо на абсолютный путь на вашем сайте, либо в любое другое место в Интернете. Основной синтаксис для использования в вашем файле:

Redirect /directory_to_redirect_from/ https://mysite.com/new_directory/index.html

Необходимо всегда  использовать относительный путь в качестве исходного каталога. Абсолютный путь должен быть каталогом для перенаправления.

Пример создания документа об ошибках в .htaccess

Создание пользовательских страниц ошибок очень полезно, так как позволяет показывать посетителям веб-сайта понятное сообщение об ошибке, например, если URL-адрес на вашем веб-сайте не работает. Это позволяет избежать недружественной ошибки «404 File Not Found» и позволяет отображать дружественную ошибку, объясняя возможные решения и направляя посетителя обратно к содержимому вашего веб-сайта, а не оставляя их разочарованными и потерянными.

Чтобы настроить пользовательские документы об ошибках, создайте файл .htaccess, следуя основным инструкциям и рекомендациям, которые включают следующий текст:

ErrorDocument 404 /error_pages/404.html

Приведенная выше строка указывает веб-серверу Apache отображать документ, расположенный по адресу /error_pages/404.html (под вашим доменным именем/адресом веб-сайта), всякий раз, когда возникает ошибка 404 (файл не найден).

В этом примере мы предположили, что вы создали документ об ошибке и назвали его «404.html» и поместили его в каталог с именем «error_pages» под своим доменным именем. Например, http://www.yourdomain.com/error_pages/404.html.

Документ 404.html представляет собой обычный HTML-документ, как и другие на вашем веб-сайте, и может отображать любое содержимое, которое вы хотите, однако мы рекомендуем включать сообщение «Файл не найден».

Чтобы настроить дополнительные документы об ошибках, например, для сообщений об ошибках «401 Unauthorized», «403 Forbidden» и «500 Internal Server», создайте файл (точка) htaccess, следуя основным инструкциям и рекомендациям, которые включают следующий текст:

ErrorDocument 401 /error_pages/401.html
ErrorDocument 404 /error_pages/404.html
ErrorDocument 500 /error_pages/500.html

Пример защита паролем в .htaccess

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

Для начала решите, какой каталог вы хотите защитить паролем (обратите внимание, что все файлы и подкаталоги в каталоге будут защищены паролем), затем создайте файл .htaccess, следуя основным инструкциям и рекомендациям, которые включают следующий текст:

AuthName "Member's Area Name"
AuthUserFile /path/to/password/file/.htpasswd
AuthType Basic
Require valid-user

Первая строка сообщает веб-серверу Apache, что безопасный каталог называется «Имя пользовательской зоны», это будет отображаться при появлении всплывающего запроса на вход в систему. Во второй строке указывается расположение файла паролей. Третья строка указывает тип аутентификации, в этом примере мы используем «Базовый», потому что мы используем базовую HTTP-аутентификацию, и, наконец, четвертая строка указывает, что нам требуются действительные учетные данные для входа в систему, эта строка также может использоваться для указания определенного имени пользователя, например «требовать имя пользователя пользователя» потребует имя пользователя «имя пользователя».

Вы бы использовали это, если бы вы защищали паролем область администрирования, а не настраивали общедоступный каталог, защищенный паролем.

Расположение файла паролей может быть где угодно на вашем веб-сервере, «/location/of/password/file/» необходимо заменить на полный/абсолютный путь к каталогу, содержащему файл паролей, и файл «.htpasswd». должно существовать, однако это можно назвать как угодно.

Мы используем имя файла «.htpasswd», потому что сервер распознает имя файла и скроет его от посетителей. Обратите внимание, что некоторые серверы требуют, чтобы файл паролей находился в том же каталоге, что и файл .htaccess. Также важно использовать полный/абсолютный путь к серверу для расположения файла паролей, относительный путь или любой вариант URL-адреса не будут работать.

Файл паролей будет содержать что-то похожее на следующий текст:

username:encryptedpassword
fred_smith:oCF9Pam/MXJg2

Теперь вы не можете просто придумать пароль, на серверах Unix/Linux они должны быть зашифрованы сервером, на серверах Windows вы просто используете простой текстовый пароль, поскольку Windows не предлагает никаких методов шифрования. Вы можете иметь любое количество записей пользователей в файле паролей, по одной учетной записи в строке, разделяя имя пользователя и пароль двоеточием. Если у вас нет доступа к серверу, попросите вашего поставщика услуг включить эту функцию. Пожалуйста, панель управления имеет эту встроенную функцию.

Как запретить посетителей по IP-адресу

Средства блокировки посетителей, предлагаемые веб-сервером Apache, позволяют нам отказывать в доступе определенным посетителям или разрешать доступ определенным посетителям. Это чрезвычайно полезно для блокировки нежелательных посетителей или для разрешения доступа владельца веб-сайта только к определенным разделам веб-сайта, например, к области администрирования.

Чтобы настроить ограничения и блокировку посетителей, создайте файл .htaccess, следуя основным инструкциям и указаниям, которые включают следующий текст:

order allow,deny
deny from 255.0.0.0
deny from 123.45.6.
allow from all

Приведенные выше строки сообщают веб-серверу Apache о блокировке посетителей с IP-адресов «255.0.0.0» и «123.45.6.», обратите внимание, что во втором IP-адресе отсутствует четвертый набор цифр, это означает любой IP-адрес, который соответствует первому. будут заблокированы три набора цифр, например, «123.45.6.10» и «123.45.6.255».

Чтобы настроить блокировку всех посетителей, кроме себя, создайте файл .htaccess, следуя основным инструкциям и указаниям, которые включают следующий текст:

order allow,deny
allow from 255.0.0.0
deny from all

Приведенные выше строки сообщают веб-серверу Apache о блокировке всех посетителей, кроме тех, у кого IP-адрес «255.0.0.0», который вы должны заменить своим собственным IP-адресом.

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

Заблокированным посетителям будет показано сообщение об ошибке «403 Forbidden».

Пример настройки файла .htaccess.

Примеры правил содержащихся в моем файле .htaccess

# AMPFORWPLBROWSERCSTART Browser Caching – amp хеширование на стороне браузера.

<IfModule mod_expires.c>
ExpiresActive On
AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf .ttf
AddType application/x-font-opentype .otf
AddType application/x-font-woff .woff
AddType image/svg+xml .svg
ExpiresByType application/vnd.ms-fontobject "access 1 year"
ExpiresByType application/x-font-ttf "access 1 year"
ExpiresByType application/x-font-opentype "access 1 year"
ExpiresByType application/x-font-woff "access 1 year"
ExpiresByType image/svg+xml "access 1 year"
ExpiresByType image/webp "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType text/css "access 3 month"
ExpiresByType text/javascript "access 3 month"
ExpiresByType application/javascript "access 3 month"
ExpiresByType application/x-javascript "access 3 month"
ExpiresByType application/xhtml-xml "access 3 month"
ExpiresByType application/pdf "access 3 month"
ExpiresByType application/x-shockwave-flash "access 3 month"
</IfModule>

# BEGIN GZIP COMPRESSION – сжатие gzip

<IfModule mod_gzip.>
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>

 

# Remove browser bugs (only needed for really old browsers) – Удаляет ошибки браузера

<IfModule mod_deflate.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</IfModule>

# Compress HTML, CSS, JavaScript, Text, XML and fonts сжатие – HTML, CSS, JavaScript, Text, XML and fonts

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
</IfModule>

 

# Запрет отдачи HTTP-заголовков Vary браузерам семейства MSIE

 

<IfModule mod_setenvif.c>
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>

# Cкрыть подпись сервера

ServerSignature Off

# Отключение левых ботов

SetEnvIfNoCase User-Agent “^Missigua Locator” bad_bot
#SetEnvIfNoCase User-Agent “^PEAR HTTP_Request class” bad_bot
SetEnvIfNoCase User-Agent “^Java/1.4.1” bad_bot
SetEnvIfNoCase User-Agent “^Java/1.5.0” bad_bot
SetEnvIfNoCase User-Agent “^psycheclone” bad_bot
SetEnvIfNoCase User-Agent “^WEP Search 00” bad_bot
SetEnvIfNoCase User-Agent “^FlashGet” bad_bot
SetEnvIfNoCase User-Agent “^GetRight” bad_bot
SetEnvIfNoCase User-Agent “^GetWeb!” bad_bot
SetEnvIfNoCase User-Agent “^Go!Zilla” bad_bot
SetEnvIfNoCase User-Agent “^httplib” bad_bot
SetEnvIfNoCase User-Agent “^Indy Library” bad_bot
SetEnvIfNoCase User-Agent “^InfoNaviRobot” bad_bot
SetEnvIfNoCase User-Agent “^InterGET” bad_bot
SetEnvIfNoCase User-Agent “^Internet Ninja” bad_bot
SetEnvIfNoCase User-Agent “^LexiBot” bad_bot
SetEnvIfNoCase User-Agent “^libWeb/clsHTTP” bad_bot
SetEnvIfNoCase User-Agent “^libwww” bad_bot
SetEnvIfNoCase User-Agent “^libwww-perl” bad_bot
SetEnvIfNoCase User-Agent “^LinkextractorPro” bad_bot
SetEnvIfNoCase User-Agent “^Mozilla.*NEWT” bad_bot
SetEnvIfNoCase User-Agent “^Octopus” bad_bot
SetEnvIfNoCase User-Agent “^ProWebWalker” bad_bot
SetEnvIfNoCase User-Agent “^SuperBot” bad_bot
SetEnvIfNoCase User-Agent “^WebAuto” bad_bot
SetEnvIfNoCase User-Agent “^Wells Search II” bad_bot
SetEnvIfNoCase User-Agent “^Wget” bad_bot
SetEnvIfNoCase User-Agent “^wget” bad_bot

Я привел минимум правил которые содержатся в моем файле.

Особенности настройки файла .htaccess и распространенные ошибки

Именно так, этот файл чаще всего вызывает банальную серверную ошибку 500 Internal Server Error. Редактировать файл необходимо очень осторожно и следовать следующим правилам:

  • Всегда перед началом редактирования .htaccess файла сохраняйте его работоспособную копию.
  • Никогда не вносите новые правила на рабочий сайт без предварительной проверки файла.
  • Кодировка, как правило UTF -8.
  • Каждое правило нужно писать с новой строки.
  • Исключаются те инструкции, которые не обрабатывает сервер Apache —  сразу вызывают серверную ошибку.
  • Нельзя писать несколько инструкций в одной строке —  ошибка 500 будет Вам обеспечена.
  • Будьте внимательны — лишний пробел или символ могут привести к ошибке.

Какое влияние оказывает .htaccess файл на сайт

Как правило благодаря этому файлу можно отлично оптимизировать сайт для поисковых систем. Вот что он может:

  1. Настройка 301-го редиректа на сайте (самое распространенное правило). Может использоваться под необходимые задачи.
  2. Настройки хеширования сайта на стороне сервера.
  3. Включение сжатия gzip (сокращенно от GNU Zip) — сжатие файлов на стороне сервера.
  4. Обеспечить защиту сайта: блокировка ip адресов, запреты и прочее.
  5. Указать необходимый объем выделяемой памяти для сайта.

Это минимум доступного функционала для этого файла. Главное правильно следовать всем этим рекомендациям. В следующих статьях, я постараюсь описать некоторые правила для этого файла, а также мы узнаем что такое файл robots.txt и как добавить карту сайта в поисковые системы.

С этой статьей читают:

Спасибо, что читаешь: SEO HELPER | NICOLA.TOP

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 264

Оценок пока нет. Поставьте оценку первым.

Читайте также:

1 комментарий

  1. Илья:

    Оууу спасибо за инфу. хоть на живые примеры можно глянуть. Градиент анимация просто супер))) Отличное применение – скорее всего долго мучился.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

16 + 10 =