Файл htaccess: применение, включение, настройка

Файл htaccess: применение, включение, настройка

Файл htaccess: применение, включение, настройка
Время чтения: 15 минут
Отправим материал вам на:

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

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

Из этой статьи вы узнаете:

  1. Что такое файл .htaccess
  2. Для чего он нужен и как его настроить
  3. Как включить файл htaccess и проверить его работу
  4. Как настроить файл htaccess для wordpress
  5. Какая может возникнуть ошибка
  6. Где можно скачать правильный файл .htaccess

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

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

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

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

Теперь перечислим тонкости работы с htaccess:

  1. Он позволяет переопределить многие директивы, хранящиеся в файле httpd.confg.
  2. Файл .htaccess, при помещении в корневой каталог, воздействует на весь сайт. Однако исключением для файла .htaccess из этого правила являются каталоги, имеющие отдельный конфигурационный файл, и те, что оказались ниже в древовидной структуре.
  3. Данный файл помещается в любой каталог, причем все подкаталоги будут подчиняться его директивам.
  4. Пользователь лишен возможности просматривать из браузера .htaccess, поскольку последний входит в категорию системных файлов.

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

  • директивы простого перенаправления (редирект);
  • директивы сложного перенаправления (mod_rewrite);
  • индексные страницы;
  • обработка ошибок;
  • определение кодировки;
  • управление доступом к директориям, файлам;
  • паролирование директорий;
  • опции PHP.

Для чего нужен и как настроить файл .htaccess

Теперь более подробно остановимся на названных выше параметрах, которыми позволяет пользоваться файл .htaccess.

Редирект между страницами или сайтами

Помните, чтобы редирект мог работать, перед строками, о которых мы еще скажем, прописывают:

RewriteEngine On

  • 301 Редирект с одной страницы на другую (либо сайт).

При работе с расширением .htaccess для редиректа в файл нужно внести такие строки:

Redirect 301 /старая-страница.html http://сайт.рф/новая-страница.html

либо

RedirectPermanent /старая-страница.html http://сайт.рф/новая-страница.html

  • 301 Редирект с www-сайта на сайт без www.

Допустим, речь идет о перенаправлении с http://www.site.com на http://site.com. Отметим, что это очень полезный ход, и он нередко применяется в СЕО. Для этого есть код:

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.domain\.com$ [NC]

RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

Обратный редирект с домена без www на домен с www

Эта операция также в принципе возможна, но мы не рекомендуем ее применять. В этом случае:

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]

RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

  • Перенаправление людей с прежнего сайта на новый.

Просто пропишите:

Redirect 301 / http://newsite.com/

  • Добавление .html в конце URL.

В файле .htaccess это делается для html сайта, чтобы при вводе site.com/page либо site.com/page/ пользователь перенаправлялся на site.com/page.html. Для этого прописываем в .htaccess:

RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)

RewriteRule .* %1.html [R=301,L]

RewriteRule ^(.*)/$ /$1.html [R=301,L]

  • Удаление .html в конце URL.

Чтобы осуществить обратное перенаправление с site.com/page.html на site.com/page:

RewriteBase /

RewriteRule (.*)\.html$ $1 [R=301,L]

  • Удаление значка слэш в конце URL.

Допустим, изначально адрес выглядел как site.com/page/, а теперь он представлен таким образом: site.com/page, тогда нам нужно:

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)/$ /$1 [R=301,L]

  • 301 Редирект с одного раздела на другой.

Нам необходимо, чтобы со всех страниц определенного раздела site.com/razdel-1/razdel-2/page посетитель сайта попадал на страницы другого раздела site.com/razdel-1/page, прописываем:

RewriteRule ^blog/raznoe/(.*)$ http://site.ru/blog/$1 [R=permanent,L]

  • 301 Редирект при переезде на новый домен.

Здесь нужно корректно перенаправлять гостей с каждой страницы старого сайта на ту страницу нового, которая ее замещает. В качестве примера возьмем oldsite.com/page и newsite.com/page. Тогда в файле .htaccess для сайта прописывается:

RewriteCond %{HTTP_HOST} ^www.oldsite.com$ [NC,OR]

RewriteCond %{HTTP_HOST} ^test.oldsite.com$ [NC]

RewriteRule ^(.*)$ http://newsite.com/$1 [R=301,L]

article_banner.png

Правильное изменение страниц ошибок в .htaccess

Итак, пользователь самостоятельно задает адрес, либо кликает на ссылку. Таким образом, он отправляет соответствующий запрос на сервер хостера. И получает ответ с кодом. При бесперебойной работе придут коды 1-399, а при ошибке цифры будут такими: 400-599. Представим простую ситуацию: сервер вашего сайта перегружен, либо происходит перезагрузка. На мониторе, если человек пытается зайти на сайт, отобразится, например, 500 Internal Server Error. Рядовому пользователю эти слова не понятны, он резонно решит, что сайт уже устарел и закрыт. Эффект от этого один – человек к вам уже не вернется.

Из этого есть выход. Стандартную страницу ошибки (пугающую людей) замените на вашу отдельную страницу. Там будет содержаться информация: сайт не действует на данный момент, но вскоре продолжит работать, и на него стоит заглянуть еще раз. Интересный пример – сайт КиноПоиск. При перегрузке серверов, в соответствии с тематикой, здесь отображается сообщение «Матрица перезагружается...»  и изображение из культового фильма.

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

Здесь можно уведомить гостя, что он пытался воспользоваться несуществующей ссылкой. Хорошим ходом будет предложение не закрывать вкладку, а поискать сведения на этом сайте. Теперь перейдем к главному: чтобы заменить страницу ошибки своей, создайте отдельную страницу (допустим http://yoursite.com/404.html), снабдите файл .htaccess необходимым кодом. Это его варианты:

ErrorDocument 400 http://yoursite.com/400.html

ErrorDocument 404 http://yoursite.com/404.html

ErrorDocument 500 http://yoursite.com/500.html

Уточним нюанс: чтобы заменить страницу ошибки 403, нужно прописать сообщение:

ErrorDocument 403 "Sorry can't allow you access today, see you later alligator :)"

Настройка безопасности сайта в файле .htaccess

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

  • Защита сайта от скриптовых инъекций.

#Включает отслеживание сим-ссылок

Options +FollowSymLinks

#Запускает url_rewriting

RewriteEngine On

#Блокирует все ссылки, содержащие <script>

RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]

#Блокирует все скрипты, которые пытаются изменить переменные PHP Globals:

RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]

#Блокирует все скрипты, которые пытаются изменить переменную _REQUEST:

RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})

#Перенаправляет все подобные попытки на страницу с ошибкой 403 - запрещено

RewriteRule ^(.*)$ index.php [F,L]

  • Защита сайта от кражи картинок.

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

Options +FollowSymlinks

#Запрещает кражу картинок

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www.)?yoursite.com/ [nc]

RewriteRule .*.(gif|jpg|png)$ http://yoursite.com/images/stop_stealing.gif[nc]

В примере yoursite.com – это адрес вашего сайта.

А так будет выглядеть путь к картинке, созданной вами: http://yoursite.com/images/stop_stealing.gif. На подобных изображениях оставляют надпись, вроде: «не крадите картинки с чужих сайтов».

  • Блокировка доступа к сайту для пользователя по IP.

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

#Вносим сюда нежелательные IP адреса

allow from all

deny from 164.186.15.116

deny from 124.153.34.144

  • Блокировка доступа к сайту для всех IP, кроме проверенных.

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

#Запрещает доступ для всех, кроме указанных IP-адресов

ErrorDocument 403 http://www.yoursite.com

Order deny,allow

Deny from all

Allow from 164.186.15.116

Allow from 124.153.34.144

  • Запрет отображения содержимого определенной папки.

Здесь прописываем:

#Запрещает просмотр содержимого папки

Options All -Indexes

  • Запрет через htaccess доступа к конкретному файлу.

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

#Защищает файл myfile.txt

<files myfile.txt>

order allow,deny

deny from all

</files>

  • Запрет доступа ко всем файлам с определенным расширением.

Допустим, требуется перекрыть доступ ко всем.txt файлам, тогда нужно прописать:

<Files "\.(txt)$">

Order Deny,Allow

Deny from all

</Files>

  • Блокировка ненужных User Agent-ов.

Множество ненужных расширений есть в браузере любого пользователя. Они отличаются тем, что передают разного рода лишнюю информацию серверам сайтов. Подобную функцию выполняют роботы, пауки и даже клиентские приложения, установленные на компьютере пользователя. При помощи следующего кода можно получить данные о большей части действующих на данный момент так называемых «Юзер Агентов».

#Блокирует нижеперечисленных User Agent-ов

SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]

SetEnvIfNoCase user-Agent ^Java.* [NC,OR]

SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]

SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]

SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]

SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]

SetEnvIfNoCase user-Agent ^Zeus [NC]

<limit get="" post="" head="">

Order Allow,Deny

Allow from all

Deny from env=bad_bot

</limit>

Изменение кодировки сайта посредством файла .htaccess

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

  • UTF-8 – универсальная двухбайтовая кодировка;
  • Windows-1251 – Кириллица (Windows);
  • KOI8-r – Кириллица (КОИ8-Р);
  • cp866 – Кириллица (DOS);
  • Windows-1250 – Центральная Европа (Windows);
  • Windows-1252 – Западная Европа (Windows).

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

<meta http-equiv="content-type" content="text/html; charset=Windows-1251">

Но что если мета-тег не указан? В этом случае есть возможность применить файл .htaccess для передачи данной информации браузеру. Здесь понадобится код:

AddDefaultCharset WINDOWS-1251

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

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

CharsetSourceEnc WINDOWS-1251

В дальнейшем вы можете отказаться от функции, введя код:

CharsetDisable on

Оптимизация работы сайта через .htaccess

  • Ускорение работы сайта через Gzip.

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

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

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript

BrowserMatch ^Mozilla/4 gzip-only-text/html

BrowserMatch ^Mozilla/4.0[678] no-gzip

BrowserMatch bMSIE !no-gzip !gzip-only-text/html

<ifmodule mod_gzip.c>

mod_gzip_on Yes

mod_gzip_item_include file \.js$

mod_gzip_item_include file \.css$ </ifmodule>

</IfModule>

или

FileETag MTime Size

<ifmodule mod_expires.c>

<filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">

ExpiresActive on

ExpiresDefault "access plus 1 month"

</filesmatch>

</ifmodule>

или

<ifModule mod_gzip.c>

mod_gzip_on Yes

mod_gzip_dechunk Yes

mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$

mod_gzip_item_include handler ^cgi-script$

mod_gzip_item_include mime ^text/.*

mod_gzip_item_include mime ^application/x-javascript.*

mod_gzip_item_exclude mime ^image/.*

mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

</ifModule>

  • Улучшение кэширования сайта на сервере.

Улучшенное кэширование является очень важной характеристикой, поскольку благодаря ей не требуется загружать данные сайта еще раз, если те уже были загружены при первом просмотре. Получается, все просмотренные страницы, начиная со второй, загрузятся гораздо быстрее для определенного пользователя. А также при помощи этого приема вы сократите нагрузку на свой сервер. Для улучшения кэширования сайта вам потребуется этот код:

<IfModule mod_expires.c>

ExpiresActive On

ExpiresByType application/javascript "access plus 7 days"

ExpiresByType text/javascript "access plus 7 days"

ExpiresByType text/css "access plus 7 days"

ExpiresByType image/gif "access plus 7 days"

ExpiresByType image/jpeg "access plus 7 days"

ExpiresByType image/png "access plus 7 days"

</IfModule>

или

FileETag MTime Size

<ifmodule mod_expires.c>

<filesmatch ".(jpg|gif|png|css|js)$">

ExpiresActive on

ExpiresDefault "access plus 1 month"

</filesmatch>

</ifmodule>

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

  • Изменение главной (индексной) страницы сайта.

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

DirectoryIndex about.html

Настройка PHP-параметров при помощи файла .htaccess

Все привыкли, что настройку PHP производят в файле php.ini, однако ряд настроек может быть задан в .htaccess. Здесь вам понадобятся два выражения: php_value для логических значений включить\выключить), php_flag для числовых значений. Такие выражения пишутся следующим образом:

php_flag директива1 ЗНАЧЕНИЕ1

php_value директива2 ЗНАЧЕНИЕ2

причем ЗНАЧЕНИЕ1 может выражаться как on, off, 1 либо 0 (1 и on – означает включить, а 0 и off – выключить);

на месте ЗНАЧЕНИЕ2 указывается любое числовое / буквенное значение, соответствующее конкретной директиве;

директива1 применяется исключительно при работе с php_flag, может быть представлена:

  • magic_quotes_gpc - вкл\выкл функцию magic_quotes_gpc

php_flag magic_quotes_gpc on

  • display_startup_errors - вкл\выкл показ ошибок, которые происходят при работе PHP

php_flag display_startup_errors 1

  • display_errors - вкл\выкл показ ошибки в браузер

php_flag display_errors 1

  • output_buffering - вкл\выкл буферизацию вывода данных

>php_flag output_buffering on

  • register_globals - вкл\выкл глобальные переменные

php_flag register_globals on

  • engine - вкл\выкл исполнение PHP в папке в которой находится .htaccess и во всех вложенных

php_flag engine off

директива2 (используется только с php_value) может иметь такие значения:

  • upload_max_filesize - устанавливает максимальный размер загружаемого файла

php_value upload_max_filesize 10M

  • user_agent - задает значение строки user_agent, которую передает сервер

php_value user_agent “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)”

  • post_max_size - задает максимальный размер пересылаемой почты

php_value post_max_size 10M

  • default_user - задает имя пользователя базы данных

php_value mysql.default_user databaseuser

  • default_password - задает пароль для пользователя БД

php_value mysql.default_password jk323jh4g

  • default_host - задает имя хоста БД (обычно это localhost)

php_value mysql.default_host localhost

  • sendmail_from - задает имейл для отправки почты с помощью PHP

php_value sendmail_from

  • auto_prepend_file - задает файл, который будет добавлен в начало каждого PHP-скрипта

php_value auto_prepend_file /www/publiс_html/myfile.php

  • auto_append_file - задает файл, который будет добавлен в конец каждого PHP-скрипта

php_value auto_append_file /www/publiс_html/myfile.php

Как включить файл htaccess и проверить его работу

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

Данная директива размещается исключительно в блоке <Directory>. Отметим, что также по умолчанию принимается значение «All», что, в том числе, сказывается на работе файлов .htaccess. Правда, есть и другой вариант: при значении «None» они окажутся выключены. Но нельзя не отметить, что существуют и многие другие варианты значений, накладывающие определенные ограничения на конфигурацию. Вот их примеры:

  1. AuthConfig – позволяет применять директивы разрешения для защиты каталогов паролями. Другими словами, с этим значением авторизация ведется по логину, паролю, что называется базовой аутентификацией.
  2. FileInfo – разрешает работу директив, задающих типы документа (Headers, Error Documents, Cookies, URL Rewriting , пр).
  3. Indexes – отображает перед посетителем перечень файлов, когда выбранный каталог лишен файла index.html либо аналогичного ему.
  4. Limit – позволяет работать с ключевыми директивами управления доступом (allow, deny, order), сакционирования Limit. Может, отталкиваясь от данных об адресе клиентского устройства, ограничивать доступ к файлам.
  5. Options – дает возможность контролировать перечень функций сервера в каталоге, открытых для использования. Напомним, каталог указывается в < Directory>. Значение выглядит так: ExecCGI, FollowSymLinks, MultiViews, Includes, пр.

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

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

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

Способ 1

Для данного легкого метода заставим Apache с помощью директив файла htaccess искать «indexgood.html» до «index.html». Если .htaccess поддерживается, попадая в папку через браузер, Apache загрузит .htaccess, и на экране появится страница «indexgood.html» с поздравлением! В противном случае Apache, не обращая внимания на .htaccess, будет искать файл «index.html».

    # Эта директива заставит Apache искать

    # "index_good.html" перед "index.html" 

    DirectoryIndex index_good.html index.html 

Директива DirectoryIndex получает список, в котором через запятую перечисляются вероятные файлы. Если перед Apache ставятся URL директории, значит дается не прямой путь к файлу (не http://www.example.com и не http://www.example.com/index.html), поэтому он прибегнет к списку для обнаружения заданного файла. Движение по перечню идет слева направо. Если первый файл найден, он будет загружен, пользователь его увидит.

Способ 2

Обычный неверный синтаксис в вашем файле .htaccess. пригоден для проверки – сервер не сможет с ним справиться!

    # здесь мы намеренно допускаем ошибку

    AHHHHHHH 

«AHHHHHHH» – это не директива Apache, то есть приведет к ошибке, как только тот попытается осуществить просмотр файла htaccess. О чем это нам скажет? Если перед вами появится страница с «Internal Server Error» – поддержка работает. Так как данная ошибка означает, что сервер искал .htaccess файл. Если же вы увидите index.html – она отключена.

Как настроить файл htaccess для wordpress

Обсудим шаги, необходимые при настройке файла htaccess для wordpress.

  1. Прописываем запрет просмотра содержимого каталога (в качестве примера используем каталог vverx), в котором нет файла index.txt.

Если мы сохраним стандартный файл, перед всеми людьми, набирающими в браузере https://sales-generator.ru/ /vverx/, отобразится содержимое каталога, его файлов (листинг).

Это нам не нужно, поэтому после строки #  BEGIN WordPress прописываем:

<Directory /vverx/>

Options -Indexes

</Directory>

Благодаря директиве Options, удается установить ряд однотипных параметров. Так директива может применяться с параметром Indexes. В подобном случае знак влияет на то, сможет ли посетитель увидеть список файлов. Так при «—» не увидит, если выбранный каталог не содержит файл index.txt или аналогичный ему. А при «+» увидит. Отметим, если требуется защита от хакерских атак, Options отлично подойдет.

  1. Указываем метод кодирования

WP по умолчанию пользуется кодировкой UTF-8. Мы должны в принудительном порядке установить кодировку файла htaccess указанным ниже кодом. Только так удастся избежать лишних проблем:

AddDefaultCharset UTF-8

Приятно, что вся работа состоит во внесении этой короткой строки.

  1. Сжатие контента

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

Apache предлагает два варианта сжатия. Специалисты выбирают модуль mod_deflate. Для этого в файл htaccess требуется ввести код:

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript

BrowserMatch ^Mozilla/4 gzip-only-text/html

BrowserMatch ^Mozilla/4.0[678] no-gzip

BrowserMatch bMSIE !no-gzip !gzip-only-text/html

<ifmodule mod_gzip.c>

mod_gzip_on Yes

mod_gzip_item_include file \.js$

mod_gzip_item_include file \.css$ </ifmodule>

</IfModule>

  1. Кеширование

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

Для кеширования в файле htaccess применяются модули mod_expires, mod_headers. Каждый тип файлов требует отдельной установки промежутка времени кеширования либо его отсутствия. Рассмотрим пример кода в mod_headers файла htaccess, с которым нельзя хранить в кеше php-файлы.

# Запрещение кеширования документов с php расширением

<IfModule mod_headers.c>

Header append Cache-Control "no-store, no-cache, must-revalidate"

</IfModule>

<IfModule mod_expires.c>

ExpiresActive On ExpiresDefault "now"

</IfModule>

Практически идеальный способ, подходит для любых файлов, кодируется так:

# Включаем кэш в браузерах посетителей

<ifModule mod_headers.c>

# Все html и htm расширения будут храниться в кэше браузера один день

<FilesMatch "\.(html|htm)$">

Header set Cache-Control "max-age=43200"

</FilesMatch>

# Все css, javascript и txt форматы, будут храниться в кэше браузера одну неделю

<FilesMatch "\.(js|css|txt)$">

Header set Cache-Control "max-age=604800"

</FilesMatch>

# Все флэш и изображения будут храниться в кэше браузера один месяц

<FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">

Header set Cache-Control "max-age=2592000"

</FilesMatch>

# Отключаем кеширование php и других расширений

<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">

Header unset Cache-Control

</FilesMatch>

</IfModule>

Какая может возникнуть ошибка в файле .htaccess

Что делать, если сервер выдает 500 ошибку после создания файла .htaccess – Internal Erorr-  Ошибка синтаксиса или файл записан не в том формате? В этом случае необходимо проверить синтаксис .htaccess.

Обратите внимание на файл error.log в корне своего сайта (если он там есть). Допустим, он выглядит так:

[Tue Dec 20 02:29:10 2005] [alert] [client 127.0.0.1] w:/home/h15.ru/bospor/.htaccess: CustomLog not allowed here

Тогда строка говорит об ошибке в файле w:/home/h15.ru/bospor/.htaccess (http://bospor.h15.ru/.htaccess): Директива CustomLog здесь не подходит.

Где можно скачать правильный файл .htaccess

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

  1. Стандартный код только созданного .htaccess для WordPress с правилом преобразования ссылок.
  2. Кодировка файлов в формат UTF-8.
  3. Блокировка доступа к отображению структуры сайта через браузер.
  4. Перенаправления адресов сайта с http://www.site.ru/ на без http://site.ru/
  5. Кеширование сайта браузером гостя (для быстрой загрузки сайта).
  6. Блокировка доступа к wp-config.php (файл включает пароли базы данных).
  7. Блокировка доступа к файлу .htaccess (файл включает настройки сервера).
  8. Удаление ненужного /category/ в url адресах страниц сайта.

Отметим, все остальное вносится в индивидуальном порядке.

Когда вам удалось скачать оптимальный файл .htaccess для WordPress, нужно открыть в Notepad++. Далее нажмите Cntr+F и замените в шести местах установленное по умолчанию zesite.ru на адрес своего сайта.

Но, допустим, данный оптимальный .htaccess для WordPress по определенному параметру вам не подходит, что делать? Откройте его на редактирование, чтобы удалить или внести недостающее правило.

Итак, теперь все манипуляции произведены, вам остается загрузить в корень сайта оптимальный .htaccess для WordPress вместо находящегося там файла .htaccess.

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

article_banner.png

Опубликовано Генератор Продаж