Как составить файл htaccess

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

Что такое файл .htaccess

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

Файл .htaccess будет полезен, если ваш сайт размещен на виртуальном хостинге. На нём несколько пользователей делят ресурсы одного сервера. Общие настройки для управления этим сервером закрыты от клиентов, чтобы у них не было возможности влиять на другие сайты. При этом пользователи могут управлять настройками сервера только в рамках своего сайта через создание .htaccess.

Зачем нужен .htaccess

В файле .htaccess можно задать некоторые серверные настройки Apache для конкретного сайта или отдельной папки. Например:

  • Починить кодировку. От кодировки (Charset) зависит способ отображения кода в виде печатных символов. К наиболее распространенным кодировкам относятся UTF-8 и Windows-1251. Если тексты на сайте превратились в набор непонятных знаков — значит, на сайте слетела кодировка. Исправить её можно в .htaccess.
  • Настроить редирект. Редирект — это переадресация с одного адреса на другой. Подробнее о назначении редиректов, их типах и настройках мы рассказали в статье. Файл .htaccess позволяет задавать гибкие перенаправления: например, для отдельного IP, со страниц без префикса www на страницы с ним, редиректы для всех страниц, кроме главной и другие.
  • Назначить страницы ошибок. На сайтах встречаются различные ошибки (404 — страница не найдена, 403 — в доступе отказано и т. д.). Тогда пользователь видит страницу с описанием возникшей ошибки. По умолчанию такие страницы практически не оформлены и могут сильно отличаться от дизайна остального сайта. Выход — создать свою красочную страницу ошибки и задать ее появление в .htaccess.
  • Изменить главную страницу. В архитектуре сайта по умолчанию выбрана главная страница (индексный файл), которая отображается первой при открытии сайта. Если вы хотите сделать первой какую-то другую страницу, используйте .htaccess.
  • Включить кэширование файлов. Кэширование позволяет поместить часть статичной информации сайта в кэш. Благодаря этому страницы сайта будут быстрее загружаться в браузерах пользователей. Если настроить кэширование в .htaccess, ускорится работа сайта.
  • Создать ЧПУ. ЧПУ расшифровывается как «человекопонятный URL». Иногда URL-адреса могут быть слишком длинными или содержать численное обозначение страниц. Это негативно влияет на пользовательский фактор, а значит и на SEO-показатели. В .htaccess с помощью одной команды можно назначить для URL латинские символы (или задать другой подходящий способ).
  • Защитить папку паролем. Если сайт содержит папку с конфиденциальной информацией, ей требуется дополнительная защита. Через .htaccess можно настроить базовую аутентификацию по логину и паролю. Это позволит снизить риск взлома и кражи данных.
  • Настроить параметры php. PHP — язык программирования, который используется в разработке большинства сайтов с динамическим контентом. Настраивать PHP можно в файле php.ini, а можно работать с ним как с модулем .htaccess и управлять настройками в одном конфигурационном файле.
  • Ограничить доступ к сайту. В .htaccess можно ограничить доступ к сайту для нежелательных IP, что позволит контролировать доступ, а также отражать хакерские атаки. Например, DDoS-атаку, в момент которой процессор пытаются нагрузить таким количеством запросов, которые он не способен обработать. Как правило, запросы поступают с одного/нескольких IP-адресов. Подробнее: Что такое DDoS-атака.
  • Закрыть доступ к сайту от поисковых ботов. Чтобы сайт отображался в поисковой выдаче, его должны обойти поисковые роботы, которые собирают информацию, необходимую для индексации. Однако некоторые поисковые боты могут быть нежелательны (SolomonoBot и др.). В .htaccess можно ограничить доступ к сайту для нежелательных ботов по User-Agent.

Таким образом, .htaccess позволяет гибко настраивать отдельные сайты без изменения общих параметров сервера. Также этот конфигурационный файл можно передавать внештатным SEO-специалистам: они получат доступ к настройками именно SEO-оптимизации без возможности менять настройки на сайте или хостинге.

Ниже рассмотрим, как создать файл .htaccess на своем компьютере и загрузить его на хостинг.

Как сделать .htaccess в Windows

Если ваш сайт создан с помощью CMS (WordPress, Joomla, 1С Битрикс и других), файл .htaccess будет сгенерирован автоматически. Вы сможете его найти в корневой папке сайта в панели управления хостингом. Как правило, по умолчанию в файле не будет никакой информации, кроме нескольких строк с комментариями.

Обратите внимание! На хостинге с панелью управления cPanel .htaccess и все другие файлы, которые начинаются с точки, по умолчанию скрыты. Чтобы он начал отображаться в корневой папке, следуйте инструкции.

Если же сайт был написан с нуля, а не на CMS, или если файл по какой-то причине был удален, вы можете создать его на компьютере. Чтобы создать файл .htaccess на компьютере с ОС Windows:

  1. 1.

    Откройте программу Блокнот.

  2. 2.

    Нажмите ФайлСохранить как (или используйте комбинацию горячих клавиш Ctrl + Shift + S):

  3. 3.

    В графе «Тип файла» выберите Все файлы. Затем в поле «Имя файла» введите «.htaccess» и нажмите Сохранить:

Если файл сохранился под названием .htaccess.txt, нужно убрать расширение текстовых файлов (.txt). Для этого откройте проводник, перейдите во вкладку Вид и уберите галочку напротив пункта «Расширения имен файлов»:

Интерфейс проводника в Windows 10

Когда файл будет готов, залейте его в корневую папку сайта. Для этого войдите в панель управления и следуйте подходящей инструкции:

  1. 1.

    Перейдите в раздел Менеджер файловwww и выберите домен вашего сайта.

  2. 2.

    Нажмите кнопку Загрузить в панели иконок сверху.

  3. 3.

    Нажмите Выберите файл, найдите на локальном диске созданный файл .htaccess и кликните Ok:

Готово, файл добавлен в «корень» сайта.

Обратите внимание: если вид вашей панели управления отличается от представленного в статье, в разделе «Основная информация» переключите тему с paper_lantern на jupiter.

  1. 1.

    В блоке «Файлы» нажмите Менеджер файлов:

  2. 2.

    Найдите в списке слева корневую папку вашего сайта, кликните по нему и в строке сверху нажмите Загрузить:

  3. 3.

    В открывшемся окне нажмите Выбрать файл и выберите файл .htaccess.

Готово, файл будет загружен.

  1. 1.

    В блоке нужного домена выберите Менеджер файлов:

  2. 2.

    Нажмите в верхней панели Загрузить и откройте созданный файл .htaccess.

Готово, файл будет загружен.

Работа с файлом .htaccess

Создать файл и загрузить его в корневую папку сайта — только первый шаг. Следующий и самый важный — начать работать с настройками, о которые мы описывали выше.

Все конфигурации в .htaccess задаются с помощью директив (или команд). Они включают в себя символы латинского алфавита, %, фигурные и квадратные скобки и другие. Каждая директива состоит из ключа (неизменяемая часть) и значения. Например, директива для изменения главной страницы сайта:

Где DirectoryIndex — ключ, а index.php — значение (страница, которую вы хотите использовать в качестве главной страницы сайта).

Чтобы внести какую-либо директиву в конфигурационный файл вашего сайта:

  1. 1.

    Откройте файл .htaccess в корневой папке. Или создайте новый, если директива должна применяться не ко всему сайту, а к конкретному файлу или папке.

  2. 2.

    Скопируйте нужную директиву и вставьте ее в файл.

  3. 3.

    Замените значение для вашего сайта (нужный домен, страница и т. п.).

  4. 4.

    Сохраните изменения.

Обратите внимание! Не вносите в .htaccess видоизмененные команды, если не уверены в их работе. Повреждение файла может повлечь за собой сбой работы сайта.

Ниже вы найдете директивы для нескольких наиболее распространенных операций в файле .htaccess.

Как запретить доступ к файлу, папке или всему сайту

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

  • Чтобы закрыть доступ ко всему сайту, добавьте в файл строки:
Order Deny,Allow 
Deny from all
  • Чтобы закрыть доступ к конкретной папке, создайте новый файл .htaccess в этой папке и добавьте в него код выше.
  • Чтобы закрыть доступ от всех посетителей, кроме конкретного IP (через запятую можно указать несколько IP-адресов) введите:
Order Deny,Allow
Deny from all
Allow from 123.123.123.123

Где 123.123.123.123 — IP-адрес, для которого доступ разрешен.

  • Чтобы закрыть доступ к конкретному файлу, создайте новый файл .htaccess в той папке, где находятся нужный файл, и добавьте следующие строки:
<Files example.exe>
Order Deny.Allow
Deny from all
</Files>

Где example.exe — название файла, к которому нужно закрыть доступ.

Как запретить доступ к файлам определенного типа

Если вам требуется запретить доступ к нескольким файлам одного формата, можно добавить директиву для каждого. При этом стоит учитывать, что серверу будет сложнее обрабатывать большое количество параметров в файле .htaccess. Чтобы экономить ресурсы сервера, можно закрыть доступ не к каждому файлу, а ко всем файлам схожего расширения.

Для этого добавьте следующие строки:

<Files ".(txt|pdf|jpg)$">
Order Deny.Allow
Deny from all
</Files>

Где вместо txt, pdf, jpg — нужные вам расширения.

Как запретить просмотр директорий в .htaccess

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

Чтобы открыть отображение листинга, введите:

Как настроить 301 редиректа для сайта

Мы посвятили настройке редиректов в .htaccess отдельную статью, в которой рассмотрели 10 различных вариаций редиректов.

Рассмотрим самый часто используемый тип: редирект с одного домена на другой. Он используется, если сайт переехал на новый домен из-за ребрендинга, изменения официального названия компании или причин технического характера.

Чтобы сделать редирект, добавьте в .htaccess строки:

RewriteEngine On
RewriteCond %{HTTP_HOST} site1.ru
RewriteRule (.*) http://site2.ru/$1 [R=301,L]

Где site1.ru — исходный домен, site2.ru — целевой домен.

Как включить обработку ошибок

Чтобы установить пользовательские страницы ошибок, нужно воспользоваться директивой ErrorDocument. Добавьте в .htaccess директиву с номером ошибки и адрес созданной страницы:

ErrorDocument 404
http://site.ru/error/404.html

Где:

  • site.ru — домен вашего сайта;
  • error — папка, в которой расположена страница ошибки (если её нет, пропустите это звено);
  • 404.html — название страницы ошибки.

Пример файла .htaccess

Ниже мы приводим пример «боевого» файла .htaccess c комментариями. Комментарии не отображаются в основном коде и используются для пояснений. Чтобы добавить комментарий, поставьте перед строкой шарп (#).

# Закрыт доступ к просмотру листинга (списка директорий) сайта:<head> </head>

# Задана пользовательская страница для ошибки 404:<head> </head>

ErrorDocument 404 /404.php
<IfModule mod_php5.c>

# Настройка параметров php для версии 7.x:<head> </head>

<IfModule mod_php7.c>
  php_flag session.use_trans_sid off
  #php_flag default_charset UTF-8
  #php_value display_errors 1
</IfModule>

# Настройка ЧПУ для 1С-Битрикс:<head> </head>

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
  RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>

# Указание индексного файла:<head> </head>

<IfModule mod_dir.c>
  DirectoryIndex index.php index.html
</IfModule>

# Включение модуля mod_expires и выставление настроек времени кэширования статических файлов:<head> </head>

<IfModule mod_expires.c>
  ExpiresActive on
  ExpiresByType image/jpeg "access plus 3 day"
  ExpiresByType image/gif "access plus 3 day"
  ExpiresByType image/png "access plus 3 day"
  ExpiresByType text/css "access plus 3 day"
  ExpiresByType application/javascript "access plus 3 day"  
</IfModule>

Итак, мы рассмотрели создание .htaccess (Windows), а также часто используемые директивы, которые нужны для управления сайтом. По инструкциям вы сможете выставить нужные настройки.

Время на прочтение
8 мин

Количество просмотров 9.8K

Let’s begin from a far distance with the goal that the novices can see how the file described in the article works. To work the website on the Internet, you need not just a PC and access to the network, yet additionally, extraordinary programming introduced on it, which gives access to information utilizing the HTTP and HTTPS conventions. This product is the web server. There are different sorts of web servers, however, the most widely recognized is Apache. It is based on the open-source code, free, is continually being improved and enhanced, compatible with many scripts, and works on almost all platforms, including Windows, Linux, Netware 5.x.

Apache is arranged by means of design documents that are put away in content organization. With their assistance, you can set explicit standards of activity of the web server. The principle design record is called httpd.conf or apache.conf (contingent upon the OS conveyance). Much of the time, all server setups can be determined here, and essentially this technique is best in light of the fact that:

reduces the response time of the web server when mentioned (so every time the web server is gotten to, Apache won’t peruse all catalogues for .htaccess); a few orders, for instance, mod_rewrite module orders, in numerous regards, work better from the principle design record.

Be that as it may, not all clients of the server may approach this document (for instance, on account of shared facilitating), so the rest is offered an extra web server arrangement record — .htaccess (with a dab toward the start of the name).

Table of contents

  1. What does .htaccess stand for
  2. How to create a .htaccess file
  3. .htaccess syntax
  4. .htaccess opportunities
  5. Access control
  6. Working with web-server errors
  7. Adjusting redirect 301 in htaccess
  8. mod rewrite redirecting module
  9. Defining encoding
  10. Other opportunities
  11. If .htaccess does not work
  12. A few more several tips on working with .htaccess
  13. Useful links

What is .htaccess and what is it for?

The file (or files) .htaccess will set the rules for the web server only in the directory where it is located and its child directories, without global changes in the operation of the entire server. The ability to use .htaccess is prescribed by a directive (i.e., a command) — AllowOverride — in the main configuration file httpd.conf, the name of which directly indicates that the settings inside .htaccess take priority over the settings in httpd.conf (unless otherwise limited by all same directive AllowOverride). With this directive, you can allow everything, and you can — just some actions. Detailed instructions for its use can be found on the Apache website.

With it, each time a web server is accessed, Apache will scan all directories for .htaccess. Changes in the file are valid immediately after saving — the restart of the entire web server is not needed (unlike changes in httpd.conf).

The name of the .htaccess file is common, but not at all mandatory. You can set a different name in httpd.conf using the AccessFileName directive, for example:

AccessFileName .config

How to create a .htaccess file

As already mentioned, the configuration files have a text format, and you can also create .htaccess using a text editor (for example, Notepad or NotePad ++ in Windows).

The file name is .htaccess (with a dot at the beginning);

type — “All files”;

word wrap;

ASCII mode (when uploading .htaccess to a hosting using an FTP protocol).

Apache is a case-sensitive web server, so it is important to write the name in small letters: .HTaccess and .htaccess are different files.

Mac OS files starting with a dot are invisible. Therefore, you can call it differently and after, transferring via FTP to the hosting, rename it. Usually they place the file in the root directory of the web server (/ public_html) or in the root directory of the site (/public_html/site.com/).

.htaccess syntax

The .htaccess syntax is similar to the httpd syntax. For each directive, a separate line is assumed. For your own convenience, you can add comments to the file using the # sign, and the value after # will be ignored by the web server. This trick can be used to disable any directive. It does not need to be removed completely from the file — just comment it out.

The possibilities of the configuration file are enormous. Below are the basic settings in .htaccess.

.htaccess opportunities

Access control

Web access ban:

Order Deny, Allow
Deny from all

Web access ban, except for IP:

order deny, allow
deny from all
allow from xxx.xxx.xxx.xxx

Web access ban for IP:

Order allow, deny
Allow from all
Deny from xxx.xxx.xxx.xxx

File access ban:

<Files private.html >
Order allow, deny
Deny from all

Directory security with the password:

AuthType Basic     
AuthName "Directory Name"
AuthUserFile /home/cpanel_user/.htpasswds/public_html/smth/passwd
require valid-user

# where AuthName "Directory Name is the secured directory name, аnd 
# /home/cpanel_user/.htpasswds/public_html/smth/passwd is the file location with the password.

Working with the web-server errors

Sometimes, instead of the expected page, a visitor may encounter a web server response in the form of an error with a concise, but not always clear for a simple user, explanation of the reason. A complete list of status codes can be found on Wikipedia. For the most common (for example, 404 or 500 errors), it is desirable to create your own page that looks better and presents the exit route to the visitor. It is set as follows:

ErrorDocument 404 yourdomain.com/error/404.html
# where yourdomain.com/error/404.html is the path to the created page.

Adjusting the redirect 301 in htaccess

To create a permanent redirect, the directive 301 redirect is used, which transfers the entire weight of the page to a new url (therefore, it is preferable to a 302 redirect for SEO purposes).

Redirecting the entire site to a new domain:

Redirect 301 / http://www.newdomain.com/

Redirect page to new:

Redirect 301 /page1.html http://mydomain.com/page2.html

Mod rewrite redirect module

The mod_rewrite module is an indispensable mechanism for changing URLs “on the fly”. Its utility, and at the same time, the difficulty lies in the fact that you can use a myriad of rules that include even more variables.

For the module to work, first of all we need directives

RewriteEngine On (includes the conversion engine)

Options FollowSymLinks (mod_rewrite operation condition).

If the server administrator has disabled this option for the user directory, then the conversion mechanism cannot be used. This restriction is imposed on virtual hosting servers for security purposes.

For further acquaintance with the module we recommend to refer to the source.

RewriteRule

One of the most functional directives of the mod_rewrite module is the RewriteRule. To specify the condition under which the rule will work, the RewriteCond directive is used. It (one or more) must be prescribed before the RewriteRule.

Redirect page to new domain:

RewriteRule ^ page1  .html $ http://newdomain.com/ [R = 301]

Redirecting a site from a domain without www to a domain from www:

RewriteEngine On
RewriteCond% {HTTP_HOST}! ^ Www  .. * [NC]
RewriteRule ^ (. *) Http: //www.% {HTTP_HOST} / $ 1 [R = 301]

And vice versa:

RewriteCond% {HTTP_HOST} ^ www . (. *) $ [NC]
RewriteRule ^ (. *) $ Http: //% 1 / $ 1 [R = 301, L]

HTTPS redirection (you must first install an HTTPS certificate):

RewriteEngine On
RewriteCond% {https}! On
RewriteRule (. *) Https: //% {HTTP_HOST}% {REQUEST_URI} [R = 301, L]

These lines must be placed at the very top of .htaccess.

Defining the encoding

The symbol table in which to open the site is determined by the browser. However, you can set the default encoding:

AddDefaultCharset UTF-8

Such a change applies within .htaccess and to all pages of the site. You can set the encoding for a specific type of file, for example windows-1251 for html:

AddType "application / x-httpd-php3; charset = windows-1251" .html

Often the page itself carries in itself (namely in the title) information about the encoding used. It is necessary to check that the specified encoding in the document and in the configuration file matches. The utf-8 given here is almost always required when working with popular cms, since they are designed for a wide range of users around the world. By the way, by default, the same encoding is configured on our shared hosting servers.

Other opportunities

— Determine the site index file:

By default, the index page is considered index.html. With the help of the following directive, you can specify another file name that comes off first when accessing the directory:

DirectoryIndex index.php

— A useful directive is FilesMatch, which specifies the limits of the rule by file name using regular expressions. With its help, for example, you can deny access to certain files:

<FilesMatch
". (htaccess | htpasswd | ini | phps | fla | psd | log | sh) $">
Order Allow, Deny
Deny from all
</ FilesMatch>

There are some directives that are not supported on our shared hosting servers, but you can allow them on your VPS, for example.

The reason is that the web server running as suPHP does not support php_flag and php_value. Therefore, we suggest using cPanel (the subsection “Choosing a PHP Version” subsection is extremely useful, to work with error_log — “Error Log”) or to create a local php.ini file for this purpose. We did bring a couple of directives below:

— In order to avoid a web server freeze when processing incorrectly written scripts, there is max_execution_time. With its help, the time in seconds allocated for processing the PHP script is indicated. You can increase the timeout of the web server when executing the script:

php_value max_execution_time 60

— Determine the maximum upload file size:

php_value upload_max_filesize 128M (here, instead of 128, put the desired value)

— Print PHP errors into a separate file:

php_flag log_errors on
php_value error_log /home/path/to/public_html/domain/PHP_errors.log
# PHP_errors.log is the name of the file, and
# / home / path / to / public_html / domain - the path to it).

P.S. On a shared hosting, it is difficult to accurately determine which directives will work in .htaccess, because many of those that lead to a web server configuration change are prohibited for obvious reasons — these changes will affect all users on the media.

If .htaccess does not work

You can check the file operation by writing simple directives that, with the correct syntax and correct httpd settings (as described at the beginning of the article) should work:

— for example, by denying access to the site from the outside using a directive

Order deny, allow
Deny from all

— or writing to the file a set of meaningless characters that are not directives. If the web server interacts with htaccess, then, of course, it will not be able to read them and give 500 error.

If the problem really exists, you must first look for the cause in the main configuration file:

— make sure that the server allows the use of the .htaccess file: there is an AllowOverride All entry (and it is not commented out using #);

— verify that a VirtualHost entry has been created for the domain. As an example:

<VirtualHost *: 80>
DocumentRoot / www / example1
ServerName www.example.com
# Other directives
</ Virtualhost>

— the name of the additional configuration file is indicated as you need. If it is .htaccess, then:

AccessFileName .htaccess

— the hostname of the server is present (specified when creating URL redirects) as the IP address of the server or domain:

ServerName www.example.com

If the reason is not in httpd, you need to check .htaccess itself for syntax errors. You can use online services (for example, www.htaccesscheck.com, htaccess.madewithlove.be), or — the original source, where there is a complete list of directives, along with the syntax.

A few more several tips on working with .htaccess

It is highly desirable to make a backup copy of the file before any editing, so that at the worst outcome you can “roll back” the changes back.

We recommend making changes step by step, using a minimum of directives — and in case of failure it will be easier to calculate which rule caused the error.

Although the changes take effect immediately, the browser’s cache hasn’t been canceled — to check the work of the site after editing .htaccess, use it to clean it regularly or load the page to bypass the cache — via the key combination Ctrl + F5 (in Safari: Ctrl + R, on Mac OS: Cmd + R).

The most common web server error when working with .htaccess is 500, and either it indicates a problem in the syntax (typo in a directive, for example), or this type of directive is not allowed in the main configuration file.

Useful links

Inspiration for working with .htaccess:
httpd.apache.org/docs/2.2/howto/htaccess.html
Many instructions for working with .htacess:
htaccess.net.ru
Blogging platform for programmers:
writeabout.tech
Simple directive generator for .htaccess:
htaccess.ru/generator

In case .htaccess file is not enough for you to make changes in the web server configuration file, you can rent an allocated server in Europe or the USA. These servers can provide you with an opportunity to make changes in the Apache’s settings.

Buy reddit upvotes — reddit-marketing.pro
Reddit upvoting bot
Buy Reddit Accounts
Buy Medium Claps
Buy Quora Upvotes
Buy Linkedin connections

Как написать .htaccess файл для сайта

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

Таки образом apache предоставляет нам удобный инструмент конфигурации на уровне директорий сайта. Это расширяет наши возможности так как не все настройки удобно делать на глобальному уровне и на уровне виртуального хоста. Так же на хостингах, владелец сайта, как правило, не имеет возможности выполнять настройки apache на глобальном уровне и на уровне виртуального хоста, но у него может быть возможность задать требуемые настройки на уровне каталогов сайта. Для того что бы apache принимал и исполнял директивы из файлов .htaccess каталогов сайта нужно, что бы на глобальном уровне или на уровне виртуального хоста apache это было разрешено для сайта.

Делается это разрешение при помощи следующего блока кода:

<Directory /home/my_site/www>
        AllowOverride All
        #Другие директивы ...
</Directory>

Здесь в теге <Directory> указывается физический путь на сервере до корня вашего сайта, и внутри тега указывается директива AllowOverride. Эта директива может быть установлена в None, чтобы сервер не читал файл .htaccess. Если она установлена в All — сервер будет допускать все директивы .htaccess файла. Значение по умолчанию: AllowOverride All.

Теперь пару слов о названии файла .htaccess. Этот файл может называться и по другому, и это тоже устанавливается в глобальном конфиге apache директивой AccessFileName. По умолчанию эта директива установлена в конфиге как AccessFileName .htaccess, и это значение обычно никто не меняет, но вы должны знать, что изменить его на другое возможно.

Синтаксис файлов .htaccess в общем случае аналогичен синтаксису главного файла конфигурации apache. Однако, администратор может ограничивать для пользователей доступ к тем или иным директивам. То есть, несмотря на то, что команда, в принципе, может исполняться из .htaccess, администратор может запретить доступ к конкретной директиве. Учитывайте это при работе. Также хочу заметить такой момент, когда вы пишите директивы работающие с каталогами? то в главных конфигурационных файлах apache их нужно оборачивать в тег <Directory /path/…> с указанием каталога к которому они применимы, однако при написании этих директив в .htaccess файле уже не нужно их оборачивать в тег <Directory>, если вы хотите что бы они применялись к текущему каталогу файла .htaccess, если же вы хотите применить их только к вложенному каталогу то тогда, опять же, нужно обернуть в тег <Directory>.

Для чего мы можем использовать .htaccess файл. Вариантов здесь немало, вот самые распространенные из них:
1.Для управления разрешениями на доступы к каталогам сайта (запаролить директорию, запретить доступ к файлам определенного формата, или доступ к сайту в определенный промежуток времени, запретить или открыть доступ с определенных IP адресов, управлять роботами поисковиков)
2.Для перезаписи текущего URL на новый в зависимости от условий (см. также описание mod_rewrite сервера Apache и логику его обработки правил )
3.Для явного указания кодировки сайта.
4.Для разрешения или запрета просмотра файлов сайта
5.Для защиты от хотлинка
6.Для выполнения ридирктов
7.Для задания своих страниц ошибок
8.Для переопределения индексного файла
9…. и многое другое.

Давайте для примера напишем некий обобщенный файл .htaccess.
В него мы соберем наиболее распространенные случаи использования директив и добавим к ним комментарии. И из этого шаблона путем удаления не нужного вы сможете всегда подготовить конкретный .htaccess для ваших задач. Здесь символ # — это символ комментария применяемый в конфигах apache.

Подробные пояснения к коду шаблона см. после него.

# .htaccess начало шаблона
# Установка временной зоны
SetEnv TZ Europe/Moscow

# Установим принудительно кодировку страниц сайта
AddDefaultCharset UTF-8

# Зададим index файл который будет
# отдаваться если запрошенный не найден
DirectoryIndex index.php index.html

# Запретим пользователям просматривать файлы директории
Options -Indexes

# Разрешим следовать за символическими связями в этом каталоге
Options +FollowSymLinks

# Разрешение доступа только для указанных IP
Order Deny,Allow
Deny from all
Allow from x.x.x.x

# Или запрет доступа по IP
Order allow,deny
deny from x.x.x.x
deny from x.x.x.x
allow from all

# Запретить всем, то только
# одну эту строку указать
Deny from all

# Закрыть доступ к вложенной директории относительно текущего файла
# можно так, или положив туда отдельный .htaccess файл
<Directory /passwds/>
    Order Deny,Allow
    Deny from All
</Directory>

# Закрыть директорию паролем
AuthType Basic
AuthName "Enter a password"
#путь до файла с паролями и пользователями
AuthUserFile /full/path/to/.htpasswd
require valid-user

# или закрыть вложенную директорию паролем
<Directory /passwds/>
    AuthType Basic
    AuthName "Enter a password"
    #путь до файла с паролями и пользователями (абсолютный или относительно ServerRoot)
    AuthUserFile /full/path/to/.htpasswd
    require valid-user
</Directory>

# Запрет на доступ для файла .htpasswd
# для всех посетителей кроме разрешенных IP
<Files ".htpasswd">
    Order Deny,Allow
    Deny from all
    Allow from x.x.x.x, x.x.x.xx
</Files>

# Блок если нужно отключить обработку PHP
# можно и для <Directory> задать
<IfModule mod_php5.c>
  php_value engine off
</IfModule>
<IfModule mod_php4.c>
  php_value engine off
</IfModule>
#

# Блок изменение настроек PHP
# некоторые директивы зависят от версии PHP
#php_flag register_globals off
#php_value memory_limit 16M
#for files uploading - if needed
#php_value max_execution_time 500
#php_value max_input_time 500
#php_value upload_max_filesize 30M
#php_value post_max_size 30M
#php_flag display_errors off

#Настройка PHP для загрузки больших файлов до 256M
php_value memory_limit 256M
php_value upload_max_filesize 256M
php_value post_max_size 256M
#

# Перезапись URL
<IfModule mod_rewrite.c>
    RewriteEngine On
    
    # установить корневой URL как /
    RewriteBase /

    #Все запросы с HTTP на HTTPS
    RewriteCond %{HTTPS} =off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]

    #Только для указанных каталогов все запросы с http на https redirect
    RewriteCond %{HTTPS} =off
    RewriteCond %{REQUEST_URI} /(admin|secret)/ [NC]
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]
    
    # 301 Редирект как принудительная
    #постановка замыкающего слеша
    #RewriteCond %{REQUEST_URI} /+[^.]+$
    #RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
    #
    
    # 301 Редирект c www.site.ru на site.ru
    # как удаление www
    RewriteCond %{HTTP_HOST} ^www.site.ru [NC]
    RewriteRule ^(.*)$ http://site.ru/$1 [R=301,QSA,L]
    #

    #301 Универсальный редирект с домена www. на без www.
    RewriteCond %{HTTP_HOST} ^www.(.*) [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

    #301 Универсальный редирект с домена без www. на www.
    RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
    RewriteCond %{HTTP_HOST} !^www. [NC]
    RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

    # 301 Редирект с указанных доменов на основной
    RewriteCond %{HTTP_HOST} ^www.domen.net$ [NC,OR]
    RewriteCond %{HTTP_HOST} ^domain.net$ [NC,OR]
    RewriteCond %{HTTP_HOST} ^www.domain.net$ [NC]
    RewriteRule ^(.*)$ http://domain.net/$1 [R=301,QSA,L]
    #

    #Редирект с преобразованием GET параметров
    RewriteCond %{QUERY_STRING} do=page [NC]
    RewriteCond %{QUERY_STRING} id=(d+) [NC]
    RewriteRule .* /page/%1/? [R=301,L]
    
    # Внутреннее пере направление на index.php для CMS
    # Если запрошены не существующие файл или директория
    # То перенаправлять запрос на index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    #
   
    # или еще вариант внутреннего пере направления на index.php
    RewriteCond $1 !^(index.php|images|robots.txt|public)
    RewriteCond %{REQUEST_URI} !.(cssіjsіjpgіgifіpng)$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
    # или как:
    RewriteRule ^(.*)$ index.php [L]
    #

   #Еще вариант, для тех у кого не WordPress и кто хочет избавиться
   #от ненужных запросов (боты и т.п.) к темам, к админки и каталогам WordPress вида
   #где, что не файл и не директория, и не начинается с /wp-,
   #то делаем внутренний redirect на index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    #если у вас не WordPress добавим это и также блок после этого
    RewriteCond %{REQUEST_URI} !^/wp- [NC]
    RewriteRule . /index.php [L]
   #если у вас не WordPress то всем кто ломиться в /wp-...   
   #отдадим 410 Gone status - рекомендация забыть этот URL
   #RewriteRule "oldproduct" "-" [G,NC] #общий пример
    RewriteCond %{REQUEST_URI} ^/wp- [NC]
    RewriteRule . - [G,L]
    
    # Зашита от хотлинка
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://site.ru/ [NC]
    RewriteCond %{HTTP_REFERER} !^https://site.ru/ [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.site.ru/ [NC]
    RewriteCond %{HTTP_REFERER} !^https://www.site.ru/ [NC]
    RewriteRule .(jpeg|png|bmp|gif|jpg|js|css)$ - [F]
    #

   # Еще вариант антихотлинка ресурсов (картинок)
   RewriteCond %{HTTP_REFERER} !^$
   RewriteCond %{HTTP_REFERER} !^http://(.+.)?server.ru/ [NC]
   RewriteCond %{HTTP_REFERER} !^https://(.+.)?server.ru/ [NC]
   RewriteCond %{REQUEST_URI} !null.gif$ [NC]
   # Перенаправим на картинку заглушку dummy.gif
   RewriteRule .(jpg|jpeg|gif|bmp|png)$ http://server.ru/dummy.gif [L]

    
    # Еще вариант антихотлинка ресурсов (картинок)
    RewriteCond %{HTTP_REFERER} !^$
    #Замените ?mysite.com/ на адрес вашего блога
    RewriteCond %{HTTP_REFERER} !^http://(.+.)?mysite.com/ [NC]
    RewriteCond %{HTTP_REFERER} !^$
    #Замените /images/nohotlink.jpg на ваше изображение с запрещением хотлинка
    RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
    
    # Еще вариант антихотлинка ресурсов (картинок)
    RewriteCond %{HTTP_REFERER} !^http://(.+.)?mysite.com/ [NC]
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !google. [NC]
    RewriteCond %{HTTP_REFERER} !yandex. [NC]
    RewriteCond %{HTTP_REFERER} !search?q=cache [NC]
    RewriteCond %{HTTP_REFERER} !msn. [NC]
    RewriteCond %{HTTP_REFERER} !yahoo. [NC]
    RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpe [L]

    #
</IfModule>

# Вывод 404 ошибки если выключен mod_rewrite
<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>

# Зададим свои страницы для ошибок
ErrorDocument 404 /err_404.html
ErrorDocument 403 /err_403.html
#

# Блок кода редиректа на мобильную версию сайта
# Как вариант привожу здесь, больше для примера
<ifModule mod_rewrite.c>
    RewriteEngine on
    # Проверить строку UserAgent браузера
    RewriteCond %{HTTP_USER_AGENT} acs [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} alav [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} alca [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} amoi [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} audi [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} aste [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} avan [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} benq [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} bird [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} blac [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} blaz [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} brew [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} cell [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} cldc [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} cmd- [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} dang [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} doco [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} eric [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} hipt [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} inno [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ipaq [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} java [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} jigs [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} kddi [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} keji [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} leno [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} lg-c [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} lg-d [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} lg-g [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} lge- [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} maui [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} maxo [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} midp [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} mits [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} mmef [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} mobi [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} mot- [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} moto [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} mwbp [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} nec- [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} newt [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} noki [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} opwv [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} palm [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} pana [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} pant [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} pdxg [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} phil [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} play [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} pluc [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} port [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} prox [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} qtek [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} qwap [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} sage [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} sams [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} sany [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} sch- [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} sec- [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} send [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} seri [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} sgh- [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} shar [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} sie- [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} siem [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} smal [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} smar [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} sony [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} sph- [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} symb [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} t-mo [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} teli [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} tim- [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} tosh [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} tsm- [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} upg1 [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} upsi [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} vk-v [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} voda [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} w3cs [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} wap- [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} wapa [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} wapi [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} wapp [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} wapr [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} webc [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} winw [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} winw [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} xda [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} xda- [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} up.browser [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} up.link [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} windows.ce [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} iemobile [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} mini [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} mmp [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} symbian [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} midp [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} wap [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} phone [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ipad [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} iphone [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} iPad [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} iPhone [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ipod [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} iPod [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} pocket [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} mobile [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} android [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} Android [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} pda [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} PPC [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} Series60 [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} Opera.Mini [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} Moby [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} Mobi [NC,OR]
     
    # Проверить служебные заголовки, отсылаемые браузером
    RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml" [NC,OR]
    RewriteCond %{HTTP_ACCEPT} "application/vnd.wap.xhtml+xml" [NC,OR]
     
    # Проверить исключения
    RewriteCond %{HTTP_USER_AGENT} !windows.nt [NC]
    RewriteCond %{HTTP_USER_AGENT} !bsd [NC]
    RewriteCond %{HTTP_USER_AGENT} !x11 [NC]
    RewriteCond %{HTTP_USER_AGENT} !unix [NC]
    RewriteCond %{HTTP_USER_AGENT} !macos [NC]
    RewriteCond %{HTTP_USER_AGENT} !macintosh [NC]
    RewriteCond %{HTTP_USER_AGENT} !playstation [NC]
    RewriteCond %{HTTP_USER_AGENT} !google [NC]
    RewriteCond %{HTTP_USER_AGENT} !yandex [NC]
    RewriteCond %{HTTP_USER_AGENT} !bot [NC]
    RewriteCond %{HTTP_USER_AGENT} !libwww [NC]
    RewriteCond %{HTTP_USER_AGENT} !msn [NC]
    RewriteCond %{HTTP_USER_AGENT} !america [NC]
    RewriteCond %{HTTP_USER_AGENT} !avant [NC]
    RewriteCond %{HTTP_USER_AGENT} !download [NC]
    RewriteCond %{HTTP_USER_AGENT} !fdm [NC]
    RewriteCond %{HTTP_USER_AGENT} !maui [NC]
    RewriteCond %{HTTP_USER_AGENT} !webmoney [NC]
    RewriteCond %{HTTP_USER_AGENT} !windows-media-player [NC]
     
    # При выполнении условий переадресация на мобильную версию сайта
    RewriteRule ^(.*)$ http://mobile.version.of.site.ru [L,R=302]
</ifModule>

#Универсальный 302 редирект на мобильную версию сайта
<ifModule mod_rewrite.c>
    RewriteEngine on
    #Универсальный редирект на мобильную версию сайта
    RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
    RewriteCond %{HTTP_USER_AGENT} (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource|opwv|chtml|pda|mmp|blackberry|mib|symbian|wireless|nokia|hand|mobi|phone|cdm|upb|audio|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg|eric|vx|NEC|philips|mmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt|sendo|sgh|gradi|jb|dddi|moto|iphone|android) [NC]
    RewriteRule ^$  http://m.%1 [R=302,L]
</ifModule>

# .htaccess конец шаблона

Разъяснения по коду шаблона:

Расшифрую некоторые флаги из директив:

  • RewriteCond[NC] — NC значит регистр нечувствительное сравнение выполнять
  • RewriteCond[NC,OR] — NC см. выше, OR — значит объединять RewriteCond через OR, по умолчанию если ничего не указана то RewriteCond объединяются через AND оператор.
  • RewriteRule[L] — L значит закончить (остановить обработку) на этом RewriteRule правиле любые дальнейшие преобразования URL, т.е. последующие RewriteRule не выполнять.
  • RewriteRule [L,R=302] — L см. выше, R=302 значит выполнить редирект с кодом 302 на преобразованный URL
  • RewriteRule[R=301,QSA,L] — L и R см. выше, QSA — при преобразовании URL выполнять при стыковку заданных частей, а не замену.
  • RewriteRule[F] — F, значит отказать в выдачи результата по этому URL кодом 403 Forbidden.
  • RewriteRule . — [G,L] G|Gone — [G] flag значит отдать код 410 Gone status — рекомендация забыть этот URL

AuthUserFile — задает путь к файлу с паролями для http авторизации пользователя. Путь может быть абсолютный от корня файловой системы Linux сервера или относительный от ServerRoot apache. В Ubuntu ServerRoot «/etc/apache2» по умолчанию. При задании относительного пути от ServerRoot apache начальный слеш в пути не указывается, иначе путь будет восприниматься как абсолютный от корня Linux. Также, если путь содержит недопустимые символы и пробелы его нужно заключать в кавычки, это общее правило.

Order, Deny, Allow

Теперь еще раз, но уже более детально, хотелось бы вернуться к директивам управление доступом: Order, Deny, Allow и более детально описать ее синтаксис и логику.

 Директивы Allow, Deny, Order модуля mod_access_compat нежелательны к использованию и считаются устаревшими, хотя и поддерживаются еще в версиях Apache 2.3 и 2.4. В следующих версиях они будут удалены. Вместо них, начиная с версии Apache 2.3, этот функционал реализуется директивой Require, которая позволяет более гибко настраивать доступы, чем устаревшие директивы. Детали смотрите в статье «Контроль доступа клиента в Apache», которая подробно описывает директивы Require, Allow, Deny, Order с примерами их использования.

Директива Order синтаксис: Order [Deny,Allow] или [Allow,Deny]

По умолчанию директива Order имеет порядок: Deny,Allow. Обратите внимание, что Deny,Allow пишутся без пробела.

В зависимости от того в каком порядке указаны директивы Deny,Allow или Allow,Deny меняется логика работы.

Если Deny,Allow то запрещается доступ со всех IP кроме указанных, если Allow,Deny разрешается доступ со всех IP кроме оговоренных. Далее идут секции описания для доступа и запрета. Ключевое слово all означает со всех IP.

Например, что бы запретить (блокировать) доступ с IP x.x.x.x и x.x.x.xx и разрешить доступ всем остальным необходимо добавить в .htaccess следующий код:

# Разрешить ВСЕМ кроме указанных IP
Order Allow,Deny
Allow from all
Deny from x.x.x.x x.x.x.xx

Обратите внимание что IP записаны через пробел. Можно также указать IP как IP/маска.

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

# Запретить ВСЕМ кроме указанных IP
Order Deny,Allow
Deny from all
Allow from x.x.x.x x.x.x.xx

Запрет или разрешение можно указывать и на отдельный файл или группы файлов. Например, что бы запретить доступ всех кроме IP x.x.x.x к файлу passwd.html, который расположен в текущей директории.

# Запретить файл passwd.html ВСЕМ кроме указанных IP
<Files «passwd.html»>
  Order Deny,Allow
  Deny from all
  Allow from x.x.x.x
</Files>

Аналогично можно запретить или разрешить доступ к определенной группе файлов описав их через регулярное выражение. Например, к файлам с расширением «.key»:

# Запретить файлы *.key ВСЕМ кроме указанных IP
<Files «.(key)$»>
  Order Deny,Allow
  Deny from all
  Allow from x.x.x.x
</Files>

Шаблон получился большой, но на практике нужно стремиться использовать только действительно крайне необходимые директивы. Особенно осторожно нужно поступать с внешними редиректами, так как они приводят к общему увеличению времени обработки запроса. Поэтому делайте их только если они действительно необходимы. Еще хочется предостеречь Вас от прямого копипаста директив из приведенного мною шаблона в ваши реальные конфиги. Код приведенный здесь используйте только для примера, что бы получить представление, что вообще возможно и как это будет выглядеть. В свои же файлы вставляете только те директивы, синтаксис которых вы понимаете, можете расшифровать и которые вы проверили по официальному руководству apache. Ошибки по исполнению директив из файла .htaccess смотрите в логах apache.

  • Для чего нужен файл .htaccess
  • Что можно сделать с помощью .htaccess
  • Как работает .htaccess
  • Как выглядит .htaccess
  • Как создать .htaccess
    • Этап 1. Создайте файл .htaccess: инструкция для Windows
    • Этап 2. Разместите файл на хостинге SpaceWeb
    • Этап 3. Сообщите Apache, что он должен использовать .htaccess
  • Настройка .htaccess
  • Редиректы
    • Переадресация на другой домен
    • Переадресация сайта с HTTP на HTTPS
    • Переадресация поддомена в подкаталог сайта
  • Ограничение или разрешение доступа к сайту с определенных IP-адресов
  • Ограничение доступа к определенным файлам
  • Назначение кодировки
  • Отображение возникающих ошибок PHP на странице
  • Настройка страниц ошибок

 Для чего нужен файл .htaccess

.htaccess (сокращение от «hypertext access») — это дополнительный конфигурационный файл для Apache. Веб-сервер должен учитывать параметры, указанные в файле, когда обрабатывает запрос.
Обратите внимание, что .htaccess работает только с Apache. У других веб-серверов, например Nginx, есть свои файлы.

Параметры, указанные в .htaccess, не затрагивают настройки главного конфигурационного файла Apache — httpd.conf. Они влияют только на каталоги (и их подкаталоги), в которых этот файл размещен.

Где находится файл .htaccess? Если вам нужно, чтобы настройки .htaccess работали для всего сайта, разместите его в корневом каталоге. Для подкаталогов тоже можно создавать .htaccess-файлы, но учтите, что они будут мешать настройкам файла .htaccess, размещенным на уровне выше. Если вы используете CMS, скорее всего, этот файл был создан программой автоматически и чаще всего его можно найти в папке «public_html» или «www».

Что можно сделать с помощью .htaccess

  1. Настроить переадресацию (редирект):
    • с одного домена на другой,
    • с протокола HTTP на HTTPS.
  2. Ограничить или разрешить доступ к сайту с определенных IP-адресов. Это позволит контролировать доступ, а также отражать хакерские атаки. Например, во время DDoS-атаки можно запретить обработку запросов с определенных IP, что не даст злоумышленнику нарушить работоспособность сервера.
  3. Запретить доступ к конкретным файлам. Если сайт содержит папку с конфиденциальной информацией, ей нужна дополнительная защита. Через .htaccess можно настроить доступ по логину и паролю.
  4. Назначить кодировку по умолчанию. Если на сайте вы увидели не текст, а набор непонятных символов — на сайте указана неправильная кодировка. Самая распространенная кодировка — UTF-8. Указать правильную настройку и починить сайт можно в .htaccess.
  5. Указать, какие страницы должны отображаться у пользователей, при ошибках системы. На сайтах могут быть 400, 403, 404, 502 и другие ошибки. Чтобы немного сгладить неприятное впечатление пользователя от проблемы, нужно создать красочную страницу ошибки и в .htaccess указать, при каких проблемах показывать ту или иную страницу.
  6. Запретить поисковым роботам индексировать страницу. Поисковые роботы изучают все веб-страницы в интернете, если по какой-либо причине вы хотите скрыть страницу от роботов, просто запретите индексацию в файле .htaccess.  
  7. Настроить параметры PHP. Настраивать PHP можно не только в php.ini, но и в .htaccess.

Весь список директив, которые возможно использовать в .htaccess, можно найти в официальной документации PHP и Apache:

  1. Список директив php.ini.
  2. Работа с веб-сервером Apache.

Как работает .htaccess

​​Когда веб-сервер получает запрос, например, данные определенной страницы сайта, сначала он проверяет, есть ли .htaccess в файлах сайта. Проверка начинается с корневого каталога и затем всё ниже и ниже по иерархии папок. Если файл найден, веб-сервер изучает команды, описанные в .htaccess, и применяет их при дальнейшей обработке запроса.

Как выглядит .htaccess

.htaccess  — простой текстовый файл, где в каждой строке указана команда (директива). Пустые строки игнорируются.

Символ «#» в начале строки — комментарий. Система не читает эти строки. Их используют для удобства, чтобы описать смысл конкретной команды или блока.

Как создать .htaccess

Многие CMS (WordPress, Joomla, 1С-Битрикс и другие) создают файл .htaccess автоматически. Найти его можно в корневой папке в панели управления хостингом. Обычно он пустой или с парой комментариев. То есть вы сразу можете начинать работу с нужными командами.

Если же сайт был написан с нуля или вы случайно удалили существующий файл, нужно:

  1. Создать файл .htaccess вручную на устройстве.
  2. Перенести созданный файл на виртуальный хостинг.

Этап 1. Создайте файл .htaccess: инструкция для Windows

Если вы работаете на Windows, создать .htaccess можно в Блокноте.

  1. Откройте Блокнот.
  2. Нажмите Файл → Сохранить как …:

  1. В строке «Тип файла» выберите Все файлы. В строке «Имя файла» введите .htaccess и нажмите Сохранить:

Файл создан. Если, несмотря на выбранные параметры, файл сохранился в формате .htaccess.txt, нужно убрать txt-расширение. Для этого откройте проводник, перейдите во вкладку Вид и уберите галочку напротив пункта Расширения имен файлов:

Этап 2. Разместите файл на хостинге SpaceWeb

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

  1. Перейдите в раздел Хостинг Файловый менеджер.
  2. Выберите папку, в которую хотите поместить файл .htaccess и нажмите на значок Загрузить файлы:

  1. Выберите файл на своем компьютере, который вы создали на предыдущем этапе. Теперь файл .htaccess есть на хостинге:

Этап 3. Сообщите Apache, что он должен использовать .htaccess

Чтобы Apache использовал в своей работе файл .htaccess, в httpd.conf нужно добавить строку:

AllowOverride All

Настройка .htaccess

А теперь покажем, какие директивы (команды) для настройки .htaccess могут вам понадобиться для сайта.

Редиректы

Если при настройке перенаправлений вы используете кириллические домены, в .htaccess их нужно указывать в формате Punycode. Перевести веб-адрес в нужный формат можно с помощью специального сервиса, например 2ip.

Все способы редиректа в .htaccess вы можете прочитать в нашей статье Как настроить редирект через .htaccess. Здесь расскажем о двух основных настройках.

Переадресация на другой домен

Укажите в файле .htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} olddomain.ru
RewriteRule (.*) http://newdomain.ru/$1 [R=301,L]

Где:

  • olddomain.ru — домен, с которого вы настраиваете перенаправление;
  • newdomain.ru — домен, на который нужно перенаправить пользователей.

Переадресация сайта с HTTP на HTTPS

Обратите внимание, что перенаправление с HTTP на HTTPS нужно делать в файле .htaccess в корневой папке сайта. Введите:

RewriteEngine on
SetEnvIf X-Forwarded-Proto https SERVER_PORT=443
SetEnvIf X-Forwarded-Proto https HTTPS=on
RewriteCond %{HTTP:HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

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

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

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} (www.)?img.example.com$
RewriteCond %{REQUEST_URI} !img/
RewriteRule ^(.*)$ img/$1

Где:
img.example.com ― поддомен, с которого должна переадресовываться страница.
img ― подкаталог, в котором находятся файлы поддомена.
Экранирование точки обратной косой чертой () в строке 3 необязательно.

Ограничение или разрешение доступа к сайту с определенных IP-адресов

Чтобы ограничить доступ к сайту с определенных IP-адресов в файл .htaccess добавьте:

Order Allow,Deny
Allow from all
Deny from IP

Вместо IP в третьей строке укажите, тот IP-адрес, который хотите ограничить, или список IP-адресов через пробел.
Чтобы разрешить доступ к сайту только с определенных IP-адресов, добавьте:

Order Deny,Allow
Deny from all
Allow from IP

Вместо IP в третьей строке укажите IP-адрес (или список IP-адресов через пробел), которому хотите разрешить доступ к сайту.
Подробнее об этой директиве можно прочитать в статье Как запретить доступ к сайту через файл .htaccess.

Ограничение доступа к определенным файлам

Для этого добавьте в .htaccess строки:

<Files ПУТЬ_К_ФАЙЛУ>
Order Deny,Allow
Deny from all
Allow from IP
</Files>

Где:

  • ПУТЬ_К_ФАЙЛУ — путь к файлу, к которому нужно ограничить доступ;
  • IP — IP-адрес, для которого вам нужно разрешить доступ.

Назначение кодировки

Для этого добавьте строку:

AddDefaultCharset utf-8

Для корректной установки CMS Bitrix
Для корректной установки CMS Bitrix в файле .htaccess необходимо указать следующие строки:

php_value mbstring.internal_encoding UTF-8
php_value mbstring.func_overload 2
php_value max_input_vars 10000
php_value pcre.recursion_limit 1000

Отображение возникающих ошибок PHP на странице

Чтобы контролировать работу сайта, нужно настроить отображение ошибок PHP. Один из способов это сделать ― добавить директиву в .htaccess:

php_flag display_errors on
php_value error_reporting -1

Настройка страниц ошибок

Чтобы настроить отображение страниц ошибок, используйте директиву ErrorDocument. Формула для составления команды:
ErrorDocument + номер ошибки + путь к странице с ошибкой или текстовое сообщение.
Примеры:

ErrorDocument 404 /errors/not_found.php
ErrorDocument 401 /info.html
ErrorDocument 403 «you shall not pass»
ErrorDocument 500 http://example.com/500.php

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

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

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

Возможности и для чего нужен

В данном файле сайтостроители могут:

  • Настраивать директивы простого перенаправления (редиректы). Это позволит после смены домена отправить посетителя со страницы предыдущего сайта на новый проект.
  • Переадресовывать с URL, где есть www, на домен без www. Или же на https после того, как установите ssl сертификат.
  • Описывать ошибки. В их числе и ошибка 404 с заменой на необходимую страницу.
  • Кэширование файлов. Делается с целью ускорения работы веб-ресурса.
  • Создавать ЧПУ. Это «Человеко-понятные УРЛы», то есть, формируются ссылки, понятные для интернет-пользователей.
  • Изменять исходный код страниц.
  • Управлять доступом к файлам и директориям при помощи паролей.
  • Задавать индексный файл.
  • Открывать и закрывать доступ с определенных IP-адресов.
  • Управлять поисковыми ботами на сайте.
  • Настраивать директивы сложного направления.

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

Конфигурации сервера изменяются только с использованием директив (команд), включающих в себя «ключ» и «значение» для него. Все самые важные директивы, позволяющие управлять сервером, находятся в основном файле конфигурации, называющимся httpd.conf. Проблема в том, что у рядового пользователя нет возможности получить к нему доступ, так как там находится большое количество параметров, от которых зависит работоспособность всего сервера. Вот почему актуален .htaccess, позволяющий менять некоторые директивы в главном файле.

Все корректировки во вспомогательном файле действуют на весь каталог, в котором он расположен. И если загрузить данный документ в корневую папку сайта, то изменения коснутся всего ресурса.

Где находится .htaccess

Можно с легкостью проверить, есть ли у вас служебный файл. От многих других документов он отличается тем, что имеет только расширение в виде названия из слова, тогда как самого названия нет. Да, мы все привыкли видеть файлы с названием из слова, и расширением после точки, которое состоит всего из 2-3 букв. Но пустые названия позволяют делать файлы и папки «скрытыми», с открытым исходным кодом. Из этого следует вывод, что .htaccess для обычных пользователей остается невидимым, поэтому они не смогут его изменить.

Но есть у этого метода «скрытия» файла и обратная сторона медали. В стандартных FTP-клиентах на ОС Windows и Mac, документ очень часто остается невидимым для пользователей, из-за чего они ошибочно полагают, что его просто нет. Поэтому человек создает новый файл для внесения своих конфигураций, кодов для обработки ошибок, создания доступа к папкам и пр. Хорошо, что большинство хостингов оставляют место на диске, где htaccess-файл уже установлен автоматически.

Расположение htaccess на сервере

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

Если вы не найдете документ по указанному пути, то создайте собственный. Может случиться так, что на экране появится ошибка. Значит, данный хостер запретил создавать служебный файл.

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

Как правильно создать .htaccess

Для этого вам понадобится самый обычный текстовый редактор, к примеру, Блокнот, который есть на любом ПК:

  1. Откройте Блокнот, ничего в нем не пишите.
  2. Выберите пункт «Файл» и нажмите «Сохранить как».
  3. Появится окно, где напротив пункта «Тип файла» выберите «All types» или «Все файлы».
  4. В строке «Имя файла» введите .htaccess и кликните на «Сохранить».

Далее перепроверьте, создан ли документ правильно. Обязательно посмотрите, не сохранили ли вы его как .htaccess.txt. Затем загрузите файл в корневую папку сервера, и если не отобразится ошибка 500, значит, вы все сделали правильно.

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

Примеры использования

Рассмотрим самые популярные команды для .htaccess.

Редирект

Эти директивы используются с завидной регулярностью. Они позволяют перенаправить посетителя со старого URL на новую страницу. Это возможно благодаря 301-редиректу. Достаточно в код файла вписать:

Redirect 301 /старый_URL.html http://www.название_вашего_сайта.ru/новый_URL.html

В целом директива будет отображена в таком виде:

Redirect [status] URL_LOCAL URL_REDIRECT

URL_LOCAL – это старый адрес, с которого осуществляется перенос пользователя.

URL_REDIRECT – новый URL, куда переносится страница.

В поле [status] могут быть следующие значения:

  1. 301 – страница перенесена навсегда.
  2. 302 – страница перенесена на время.
  3. 303 – смотрите другую страницу.
  4. 410 – страница удалена.

Mod_rewrite (директивы сложного переноса)

Этот модуль содержится в Apache. В нем есть изобилие самых разных директив для расширенного управления адресами. К основным из них относятся:

1. Указание основного зеркала

Предназначен для того, чтобы преобразовать домен с www на URL без www. Достаточно ввести правило:

RewriteEngine On # включает работу
RewriteCond %{HTTP_HOST} ^www.название_вашего_сайтаru$ [NC] #условия для начала перенаправления
RewriteRule ^( *)$ http://название_вашего_сайта_/$1 [R=301,L] #правило преобразования

2. Перенос на https

На сегодняшний день поисковик Google активно призывает владельцев сайтов к использованию безопасного соединения, для чего необходимо перенаправлять пользователей с http на https при помощи кода:

RewriteEngine On
RewriteCond %(HTTPS) !on
RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URL)

3. Проставление слеша в конце адреса

Если вы не хотите, чтобы URL страницы заканчивался названием каталога http://название_вашего_сайта.ru/catalog, введите в файл код:

RewriteCond %{REQUEST_URI} /+[^.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

Выполнив данную команду, в дальнейшем после адреса в автоматическом режиме будет добавляться слеш: http://название_вашего_сайта.ru/catalog/

4. Перенос домена

Изменив название сайта, не забудьте в .htaccess указать:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.yoursite.ru.ru$ [NC]
RewriteRule ^(.*)$ http://www.your-site.ru/$1 [R=301,L]

Оптимизируя сайт и под Яндекс, и под Google, изменение доменного имени может быть чревато неприятными последствиями. Инструкции в robots.txt, предназначенные для Яндекса, перекрываются 301-редиректом. Но этого можно не допустить, добавив в код правило:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} ^mysite.ru
RewriteRule ^(.*)$ http://www.my-site.ru/$1 [R=301,L]

5. Запретные команды для поискового бота

В .htaccess, так же, как и в robots.txt, можно закрыть доступ к сайту для роботов поисковых систем:

RewriteEngine on
RewriteCond %{USER_AGENT} Googlebot
RewriteRule .* - [F] # F – выдает ошибку 403 – запрещено для сканирования

Обработка ошибок

Практически любой интернет-пользователь встречался с ошибкой 404 not found (страница не найдена или удалена). Но есть огромное количество других ошибок, о которых вы наверняка не слышали.

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

ErrorDocument 404 /siteerror404.html

Индексные документы

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

DirectoryIndex name.xml

Либо добавить несколько таких страниц, и поисковик будет находить их в соответствующей последовательности:

DirectoryIndex index.html index.php index.pl

Указание кодировки

Данная функция нужна, чтобы текст отображался на экране пользователя правильно. Иначе вместо нормальной читабельной страницы он будет видеть непонятные символы. Сегодня широко распространена кодировка: Windows-1251 – Кириллица и UTF-8 – двухбайтовая кодировка. Для выбора кодировки в служебном документе, применяется директива:

AddDefaultCharset WINDOWS-1251

А чтобы в дальнейшем, когда вы будете загружать файлы на сервер, не возникало проблем, укажите, что все новые файлы будут преобразовываться в аналогичную кодировку:

CharsetSourceEnc WINDOWS-1251

Указание паролей для директорий

Для этого в закрываемом каталоге пропишите:

AuthName "Need password" #сообщение для запроса пароля
AuthType Basic #тип аутентификации
AuthUserFile /passwords/.psd #имя файла, содержащее пароли для входа
Require valid-user #имя пользователей, которым открыт доступ

Доступ к файлам и директориям

Посредством файла .htaccess вы можете запретить полностью или частично доступ к определенным файлам. Допустим, вы хотите закрыть доступ к системному каталогу. Тогда в соответствующем .htaccess пропишите:

Deny from all

Для запрета просмотра определенного файла, например, test.php:

<Files test.php>
deny from all
</Files>

Открыть просмотр для конкретного IP, и при этом закрыть доступ остальным, позволяет команда:

<Files "passwd.html">

Order Deny,Allow
Deny from all
Allow from 12.345.678.90
</Files>

12.345.678.90 – пример IP-адреса (здесь нужно указать нужный вам IP).

Заключение

Как видите, служебный файл .htacces является одним из самых важных инструментов для полноценной работоспособности веб-ресурса. И ознакомившись с его возможностями, вы наверняка удивились, почему раньше знали об этом файле мало. Это эффективный инструмент для того, чтобы SEO-специалисты и программисты могли вносить изменения в конфигурации веб-сервера для определенных сайтов, не влияя на сам сервер.

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

Понравилась статья? Поделить с друзьями:
  • Как найти разницу цен в процентах
  • Как составить подробный план конспект урока
  • Как найти площядь основания пирамиды
  • Как найти хорошего оператора
  • Как найти структуру розничной цены