Htaccess файл — как создать файл .htaccess инструкция для новичков
· Время на чтение: 12мин · Автор: · Опубликовано · ОбновленоHtaccess файл — как создать файл .htaccess новичку? Файл .htaccess, как правило, имеет только расширение под Unix – системы. И приносит пользу сайтам под управлением сервера Apache.
Htaccess имеет набор правил для определенного сайта на сервере. Файл управляет многими параметрами конфигурации веб-сервера Apache. Apache — широко используемое серверное программное обеспечение для кроссплатформенных операционных систем.
Хотя синтаксис, который он использует, может поначалу немного сбивать с толку, этот .htaccess файл может делать много полезных вещей. Некоторые из его функций включают перенаправление, защиту паролем, ограничение доступа на основе определенных условий и многое другое. В этом посте мы рассмотрим, как создать и настроить .htaccess файл и реализовать несколько наиболее распространенных вариантов его использования.
Содержание статьи:
- Инструкция для создания файла .htaccess
- Простой пример перенаправления страницы
- Пример создания документа об ошибках в .htaccess
- Пример защита паролем в .htaccess
- Как запретить посетителей по IP-адресу
- Примеры правил содержащихся в моем файле .htaccess
- Особенности настройки и распространенные ошибки
- Какое влияние оказывает на сайт
Инструкция для создания файла .htaccess
Htaccess широко известен как «точечный файл», поскольку он начинается с точки. Точечные файлы почти всегда представляют собой файл конфигурации. Такие файлы могут быть для операционной системы или части программного обеспечения. По умолчанию операционная система скрывает точечные файлы в окнах поиска или в любом системном файловом менеджере. Обычно вам нужно выбрать опцию «Показать скрытые файлы» в настройках вашей операционной системы. Или вы можете использовать команду для отображения всех файлов в командной строке. ls -a
На сервере может быть несколько подобных файлов, и каждый файл всегда работает рекурсивно. Это означает, что каждый файл будет влиять на каталог, в котором он находится, а также на все файлы и подкаталоги.
- Для того, чтобы создать этот файл, достаточно воспользоваться любым доступным текстовым редактором (к примеру блокнотом).
- Название (.htaccess) — без кавычек и прочего.
- Сохраняем файл.
- Затем переносим его на Ваш сервер (хостинг) с помощью FTP клиента, обязательно в корневую директорию сайта. Вы должны передавать через ASCIIрежим. По умолчанию большинство FTP-клиентов будут передавать данные через режим, который неэффективен для передачи точечных файлов. В вашем FTP-клиенте должна быть возможность установить режим передачи. BINARY
- Далее его можно редактировать как угодно, но обязательно обновлять версию файла на сервере (хостинге). Если по какой-то причине кажется, что правила не вступили в силу, это может быть связано с неправильными правами доступа к файлам. Права доступа к файлам .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
# 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 файл на сайт
Как правило благодаря этому файлу можно отлично оптимизировать сайт для поисковых систем. Вот что он может:
- Настройка 301-го редиректа на сайте (самое распространенное правило). Может использоваться под необходимые задачи.
- Настройки хеширования сайта на стороне сервера.
- Включение сжатия gzip (сокращенно от GNU Zip) — сжатие файлов на стороне сервера.
- Обеспечить защиту сайта: блокировка ip адресов, запреты и прочее.
- Указать необходимый объем выделяемой памяти для сайта.
Это минимум доступного функционала для этого файла. Главное правильно следовать всем этим рекомендациям. В следующих статьях, я постараюсь описать некоторые правила для этого файла, а также мы узнаем что такое файл robots.txt и как добавить карту сайта в поисковые системы.
С этой статьей читают:
- Кеширование страниц сайта с помощью .htaccess — Cache
- Оптимизация HTML кода сайта — чистка, сжатие, исправление ошибок
Спасибо, что читаешь: SEO HELPER | NICOLA.TOP
Оууу спасибо за инфу. хоть на живые примеры можно глянуть. Градиент анимация просто супер))) Отличное применение – скорее всего долго мучился.