Файл .htaccess — настройка.

Руководство по настройке файла .htaccess

.htaccess настройкаСегодня статья будет посвящена настройке служебного файла .htaccess так как очень многие блоггеры, а так же seo-оптимизаторы не уделяют этому файлу должного внимания, как в прочем и настройке файла wp-config.php! А напрасно!

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

И начнем мы с того, что выясним, а на нашем сервере вообще есть ли файл .htaccess?

Если нет, то его необходимо создать! Делается это очень просто в обычном html редакторе(рекомендую Notepad++)

— открываем редактор

— вставляем в него код (можно это сделать и потом)

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

— заливаем в корень сайта

Теперь ваш файл .htaccess готов и его можно настраивать дальше.

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

А теперь непосредственно о том что и как можно настроить в .htaccess

1. Защита от хотлинков.

Защита от хотлинковОчень часто бывает, что кто-то использует картинки с вашего сайта на своем.

Это вызывает нагрузку на ваш сервер, увеличение трафика и как результат может привести к сверхнормативному использованию ресурсов хостинга, что повлечет повышение цены с его стороны.

 

 

Чтобы избежать этого, вставляем следующий код:

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^$

#домены, которые могут ссылаться на картинки с вашего сайта

RewriteCond %{HTTP_REFERER} !^http://([ -a-z0-9] .)?yoursitename.ru [NC]

#не показывать картинки при хотлинках

RewriteRule .(gif|jpe?g|png)$ — [F,NC,L]

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

RewriteRule .(jpg|png|gif)$ http://yoursitename.ru/images/imagename.jpg [NC,R,L]

 

2. Перенаправим RSS фиды WordPress на Feedburner.

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

RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http://feedburner.com/yourfeed/

RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http://feedburner.com/yourfeed/

 

3. Заставляем браузер сохранять файл вместо открытия.

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

AddType application/octet-stream .doc .mov .avi .pdf .xls .mp3

 

4. Определяем страницы ошибок.

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

ErrorDocument 400 /errors/badrequest.html

ErrorDocument 401 /errors/authreqd.html

ErrorDocument 403 /errors/forbid.html

ErrorDocument 404 /errors/404.html

ErrorDocument 500 /errors/serverr.html

#Замените /errors/*.html на путь к вашим страницам ошибок

 

5. Делаем редирект для страниц.

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

Redirect 301 /oldpage.html http://yoursitename.ru/newpage.html

При переезде домена, когда у вас сотни страниц, а вам нужно сохранить все ссылки, поможет следующий код:

Options +FollowSymLinks

RewriteEngine on

RewriteRule (.*) http://newdomain.ru/$1 [R=301,L]

 

6. Запрещаем доступ к сайту.

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

Order Allow,Deny

Allow from all

Deny from 192.168.0.1

Deny from 197.268.001.121

 

Этот код запрещает доступ с данных IP адресов. Чтоб добавить еще один или несколько IP, надо добавить в конце еще одну строку с нужным IP адресом.

Или можно так:

<Limit GET>

Order Deny,Allow

Deny from 12.345.678.90

Deny from 90.876.543.

Deny from .tvoe.tv

Allow from all

</Limit>

 

Будут заблокированы:

1. юзер с ip 12.345.678.90

2. все посетители с ip, попадающими в диапазон от 90.876.543.0 до 90.876.543.255

и все посетители от провайдера tvoe.tv

 

Чтобы запретить всем, а разрешить только одному адресу, пишем:

Order Deny,Allow

Deny from all

Allow from 192.168.0.1

 

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

 

7. Запрещаем доступ к файлам.

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

<Files .htaccess>

order allow,deny

deny from all

</Files>

Аналогично можно защитить css и js файлы, которые используются плагинами:

<Files ~ ".(js|css)$">
order allow,deny
allow from all
</Files>

 

8. Ограничиваем доступ к админке WordPress.

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

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Example Access Control"
AuthType Basic
<LIMIT GET>
order allow, deny
deny from all
allow from Ваш IP
</LIMIT>

 

9. Убираем из адреса страницы «category».

RewriteRule ^category/(.+)$ http://yoursitename.ru/$1 [R=301,L]

 

10. Как включить gzip сжатие на сервере?

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

<FilesMatch ".js.gz$">
ForceType text/javascript
Header set Content-Encoding: gzip
</FilesMatch>
<FilesMatch ".css.gz$">
ForceType text/css
Header set Content-Encoding: gzip
</FilesMatch>
<FilesMatch ".js$">
ForceType text/javascript
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule (.*).js$ $1.js.gz [L]
ForceType text/javascript
</FilesMatch>
<FilesMatch ".css$">
ForceType text/css
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule (.*).css$ $1.css.gz [L]
ForceType text/css
</FilesMatch>

 

11. Принудительное кэширование браузера клиента.

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

Header append Cache-Control "public"
FileETag MTime Size
ExpiresActive On
ExpiresDefault "access plus 0 minutes"
ExpiresByType image/ico "access plus 1 years"
ExpiresByType text/css "access plus 1 years"
ExpiresByType text/javascript "access plus 1 years"
ExpiresByType image/gif "access plus 1 years"
ExpiresByType image/jpg "access plus 1 years"
ExpiresByType image/jpeg "access plus 1 years"
ExpiresByType image/bmp "access plus 1 years"
ExpiresByType image/png "access plus 1 years"

12. Принудительно указываем кодировку сайта.

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

AddDefaultCharset UTF-8

 

13. Разрешаем выполнение PHP кода внутри JavaScript.

Очень часто встречаются ситуации когда необходимо вставить в JavaScript php код, и конечно мы хотим чтоб он работал. Следующий код как раз и разрешает это действие:

AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js
<filesmatch ".(js|php)$">
SetHandler application/x-httpd-php
</filesmatch>

 

14. Защищаемся от ботов.

SetEnvIfNoCase User-Agent "^libwww-perl*" block_bad_bots
Deny from env=block_bad_bots

Внимание: Дорогие друзья, обращайте внимание на ссылки, IP и другие данные приведенные для примера, не забывайте менять их на свои! КАВЫЧКИ должны быть прямые!!!

 

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

Удачи вам и процветания!

Автор - Александр

Меня зовут Александр.
Я Вебмастер и SEO — специалист по созданию и продвижению сайтов на WordPress.
В профессиональном интернет-маркетинге c 2007 года. Основные направления: создание и продвижение web-проектов в российском сегменте интернет. Специализация: создание сайтов и их комплексное продвижение, внутренняя оптимизация, внешняя оптимизация, трафиковое продвижение, контентное продвижение...

Связаться со мной >>
Посмотреть все публикации

    Ваше имя (обязательно)

    Ваш e-mail (обязательно)

    Сообщение (обязательно)

    "Поставьте галочку, если вы не робот"

    и решите пример ответ буквами

    22 комментария

    • Александр,Вы знаете, я предпочитаю сам, и всем своим знакомым советую просто обращаться к Вам, как специалисту в этой области. Во-первых это надежно, во-вторых качественно, а в-третьих намного дешевле, чем разбираться самому, хотя Вы очень понятно и доходчиво объясняете. Я рад, что познакомился с Вами, и надеюсь на дальнейшее сотрудничество с Вами! Спасибо Вам! Мой сайт под Вашим неусыпным присмотром, постоянно прогрессирует!

    • Серьёзная информация. Так хочется уметь разбираться во всех этих сложностях. Учу потихоньку. Чуть больше года назад я вообще ничего не знал о сайтостроении.

    • Светлана

      Александр, я начинающий блоггер и мне трудно разобраться во всех этих сложностях. А ошибок на сайте немеряно.Реально обращаться к Вам за помощью?

    • Вот!!! У меня один конкурент воровал постоянно контент. Вместе с фото. Так на его сайте в коде странице место залежа этих изображения была моя админка прописана…я даже не знала как от этого защититься. Славный файл с потрясающими возможностями..

    • Алексей

      Как хорошо, что в интернете есть твитер и вашу статью он Normy — SEO проанонсировал, как впрочем и мою «Как ваши статьи могут быть присвоены другим автором. Методы определения http://bit.ly/Kir3NX». Только сегодня его начал читать. У меня именно почти такая ситуация, как в пункте 1. Защита от хотлинков. Я не знаю, как с ней бороться и очень боюсь повредить этот файл. Тем более, сегодня уже прописывал запрет к доступу в нем по IP адресу, но он зашел 5 раз.Что-то неверно сделал. Этот чел — блогер, уже закопирайтил на сервисе несколько моих статей, а я только 3 месяца, как занимаюсь сайтом с нулевых знаний в этой тематике. Буду признателен Вам,если сможете помочь, хоть в чем-то

    • Людмила Алешина

      В-о-о-т…ничегошеньки не понимаю, как защищать((( для меня эта грамота китайская.. Перешла к Вам с сайта, где написано о плагиате… и плагин вроде поставила,оказывается он совсем не защищает((( И как быть? Голова кругом…Ставлю Ваш сайт в закладочки. Наверняка, будут очень глупые вопросы к Вам!Жму на все кнопочки!

      • Александр

        Людмила, плагин защищает, но конечно не идеально… Как я писал 100% защиты не существует и если кто-то поставит себе цель украсть контент он это сделает.

    • Александр

      Алексей, на хостинге, в Cpanel есть функция защиты картинок, включите ее или попросите хостера чтоб включил если сами не знаете. А по поводу запрета по IP, должно работать(у меня работает), видимо что-то не правильно сделали. Поэкспериментируйте… Или поищите еще инфу по этому вопросу в инете.

    • Спасибо за информацию. Обязательно воспользуюсь и посоветую другим своим знакомым

    • О Боже! Как все сложно! Моему сайту год, а я еще ни разу в корень сайта не заходила — страшно. Вчера одномоменнтно появились 456 неправильных ссылок, главная страница с анонсами работает, а публикации не открываются. Настройки не меняла. Сделала откат — не помогло.На форуме подсказали, что проблема может быть в файле htaccess, вот нашла вас, прочитала… и просто в ужасе!!! Сколько надо знать…

    • А еще резко упала посещаемость, то есть люди просто покидают сайт…

      • Александр

        Посещаемость могла упасть по многим причинам… Это нужно анализировать и проверять.

    • Вот жеж, казалось что все так просто, сделал сайт и все, пользуйся. а проблем столько….
      Спасибо Вам за информацию

    • Андрей Бас

      В пунктах 10 и 11 и т.д. вижу Вы использовали код, какой плагин отвечает за вывод кода в Вашей статье? Я пользуюсь WP-Syntax, но есть «но»… При отключении самого плагина рушится весь код! Что можете посоветовать?
      Ещё один факт, Вы используете плагин WP-Note, у меня при отключении его, пропадает выделенная подсвеченная область…
      Вы замечали подобное?

      • Александр

        Андрей, для вставки кода я использую плагин SyntaxHighlighter. При отключении плагина, это нормально, что код будет ломаться, для этого и нужен плагин чтоб правильно отображался код. И с WP-Note тоже самое, если вы его отключаете, то выделенное с помощью этого плагина не будет выделенным.
        Совет: Не отключайте плагины.

    • Попробовала редирект исправить вставила код
      Options +FollowSymLinks
      RewriteEngine on
      RewriteRule (.*) http://newdomain.ru/$1 [R=301,L]
      У меня теперь открывается
      http://newdomain.ru/ вместо моего сайта поняла,что забыла заменить название сайта. Вернула старый файл, всё равно открывается newdomain

      • Александр

        А зачем вы вообще ставите редирект? Если вы хотите чтоб у вас открывался ваш сайт…

    • Вы мне сами посоветовали, когда я спросила
      как можно это исправить?

      • Александр

        У вас уже был редирект включен! Я посоветовал посмотреть и исправить. Уберите редирект и все…

    • Вопрос отменяется, сайт свой вернула, но редирект этот надоел

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

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