Продвижение

КАК СОЗДАТЬ И ПРАВИЛЬНО НАСТРОИТЬ ФАЙЛ htaccess?

КАК СОЗДАТЬ И ПРАВИЛЬНО НАСТРОИТЬ ФАЙЛ htaccess?

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

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

Для тех, кто уже сталкивался ранее с данными настройками, то тем можно перейти сразу ко 2-му или 3-му разделу.

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

  • Как создать файл htaccess для сайта?
  • Как обезопасить сайт от взлома
  • Расширенные настройки файла htaccess

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

Для начала необходимо скачать текстовый редактор под названием Notepad++, на сайте notepad-plus-plus.org. Этот редактор с улучшенными способностями: подсвечивает код, поддерживает больше форматов файлов. Он вам понадобится и в будущем, когда вы освоитесь, то вам придется править код, и как раз этот редактор станет вашим маленьким и способным помощником.

После установки запустите его и нажмите в меню ФАЙЛ и выберите из выпадающего меню НОВЫЙ

СОЗДАТЬ ФАЙЛ htaccess

Далее пройдем снова в меню и выберем Кодировка, а из выпадающего меню выберем Преобразовать в ANSI.

СОЗДАТЬ ФАЙЛ htaccess

Потом нужно выбрать из меню слово Правка и выбрать из выпадающего меню Конверсия конца строки и далее выбрать Преобразовать в UNIX-формат.

СОЗДАТЬ ФАЙЛ htaccess

Ну вот и все. Осталось теперь сохранить данный файл. Для этого выберите меню файл, затем Сохранить как и когда откроется окно, перейдите вниз окна и введите в поле Имя файла: .htaccess, а в поле Тип файла: выбрать строчку All types(*.*) и можете нажимать кнопку Сохранить.

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

КАК ОБЕЗОПАСИТЬ САЙТ ОТ ВЗЛОМА С ПОМОЩЬЮ ФАЙЛА htaccess?

Безопасность — это хорошее настроение и гарантия успешности.
Странно начал? … не зря я начал описание с этого слова. Многие и многие сайты страдают от взлома и хакерских атак, результатом которых потеря информации (как автоматически сохранять информацию), потеря работоспособности сайта (пусть даже временная) и уже молчу про стресс и переживания — всё это, в конечном итоге, скажется на вашем доходе от ресурса.

Запугал? дааа, но здесь не до шуток.

Файл htaccess — это дополнительный файл для настроек и конфигурации вашего ресурса. Как правило он находится в главном каталоге вашего ресурса.

Если такого файла у вас нет, то можете создать его по инструкции раздела 1(Как создать файл htaccess).

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

Таких файлов может находиться на вашем сайте сколько угодно. Его права действуют как правило на тот каталог, в котором он находится, а также на все подпапки этого каталога.

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

Минимальные настройки файла htaccess?

После создания сайта у вас уже может быть такой файл и в нем может уже находится следующая информация. Как правило это может быть на сайтах с движком Вордпресс(как установить Вордпресс?).

1
2
3
4
5
6
7
8
9
10
# BEGIN WordPress
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</ifmodule>
# END WordPress

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

Защищаем файл htaccess

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

1
2
3
4
5
<Files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</Files>

Защищаем файл wp-config.php

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

1
2
3
4
<Files wp-config.php>
order allow,deny
deny from all
</Files>

Защищаем по IP адресу

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

1
2
3
4
5
<Files "wp-login.php">
    Order deny,allow
    Deny from All
    Allow from 00.00.00.00
</Files>

Вместо 00.00.00.00 нужно указать свой статический адрес.

Защищаем директорию wp-content

Этот каталог содержит много нужной информации, которой тоже разбазариваться не стоит, а посему закрываем. Для этого нужно создать такой же файл .htaccess или скопировать из главной директории вашего сайта и вставить туда этот код(предварительно всё стерев из него). Далее полученный файл кладем в директорию wp-content вашего сайта.

В этом коде нужно учесть, что иногда у некоторых не открываются xml или css, то тогда нужно из кода удалить эти данные.

1
2
3
4
5
Order deny,allow
Deny from all
<Files ~ ".(xml|css|jpe?g|png|gif|js)">
Allow from all
</Files>

Защищаем от злостных сканеров и ботов

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

1
2
3
4
5
# BEGIN Bad Bot Blocker
#SetEnvIfNoCase User-Agent "Abonti|aggregator|AhrefsBot|asterias|BDCbot|BLEXBot|BuiltBotTough|Bullseye|BunnySlippers|ca\-crawler|CCBot|Cegbfeieh|CheeseBot|CherryPicker|CopyRightCheck|cosmos|Crescent|discobot|DittoSpyder|DOC|DotBot|Download Ninja|EasouSpider|EmailCollector|EmailSiphon|EmailWolf|EroCrawler|Exabot|ExtractorPro|Fasterfox|FeedBooster|Foobot|Genieo|grub\-client|Harvest|hloader|httplib|HTTrack|humanlinks|ieautodiscovery|InfoNaviRobot|IstellaBot|Java/1\.|JennyBot|k2spider|Kenjin Spider|Keyword Density/0\.9|larbin|LexiBot|libWeb|libwww|LinkextractorPro|linko|LinkScan/8\.1a Unix|LinkWalker|LNSpiderguy|lwp\-trivial|magpie|Mata Hari|MaxPointCrawler|MegaIndex|Microsoft URL Control|MIIxpc|Mippin|Missigua Locator|Mister PiX|MJ12bot|moget|MSIECrawler|NetAnts|NICErsPRO|Niki\-Bot|NPBot|Nutch|Offline Explorer|Openfind|panscient\.com|PHP/5\.\{|ProPowerBot/2\.14|ProWebWalker|Python\-urllib|QueryN Metasearch|RepoMonkey|RMA|SemrushBot|SeznamBot|SISTRIX|sitecheck\.Internetseer\.com|SiteSnagger|SnapPreviewBot|Sogou|SpankBot|spanner|spbot|Spinn3r|suzuran|Szukacz/1\.4|Teleport|Telesoft|The Intraformant|TheNomad|TightTwatBot|Titan|toCrawl/UrlDispatcher|True_Robot|turingos|TurnitinBot|UbiCrawler|UnisterBot|URLy Warning|VCI|WBSearchBot|Web Downloader/6\.9|Web Image Collector|WebAuto|WebBandit|WebCopier|WebEnhancer|WebmasterWorldForumBot|WebReaper|WebSauger|Website Quester|Webster Pro|WebStripper|WebZip|Wotbox|wsr\-agent|WWW\-Collector\-E|Xenu|yandex|Zao|Zeus|ZyBORG|coccoc|Incutio|lmspider|memoryBot|SemrushBot|serf|Unknown|uptime files" bad_bot
#SetEnvIfNoCase Referer "Abonti|aggregator|AhrefsBot|asterias|BDCbot|BLEXBot|BuiltBotTough|Bullseye|BunnySlippers|ca\-crawler|CCBot|Cegbfeieh|CheeseBot|CherryPicker|CopyRightCheck|cosmos|Crescent|discobot|DittoSpyder|DOC|DotBot|Download Ninja|EasouSpider|EmailCollector|EmailSiphon|EmailWolf|EroCrawler|Exabot|ExtractorPro|Fasterfox|FeedBooster|Foobot|Genieo|grub\-client|Harvest|hloader|httplib|HTTrack|humanlinks|ieautodiscovery|InfoNaviRobot|IstellaBot|Java/1\.|JennyBot|k2spider|Kenjin Spider|Keyword Density/0\.9|larbin|LexiBot|libWeb|libwww|LinkextractorPro|linko|LinkScan/8\.1a Unix|LinkWalker|LNSpiderguy|lwp\-trivial|magpie|Mata Hari|MaxPointCrawler|MegaIndex|Microsoft URL Control|MIIxpc|Mippin|Missigua Locator|Mister PiX|MJ12bot|moget|MSIECrawler|NetAnts|NICErsPRO|Niki\-Bot|NPBot|Nutch|Offline Explorer|Openfind|panscient\.com|PHP/5\.\{|ProPowerBot/2\.14|ProWebWalker|Python\-urllib|QueryN Metasearch|RepoMonkey|RMA|SemrushBot|SeznamBot|SISTRIX|sitecheck\.Internetseer\.com|SiteSnagger|SnapPreviewBot|Sogou|SpankBot|spanner|spbot|Spinn3r|suzuran|Szukacz/1\.4|Teleport|Telesoft|The Intraformant|TheNomad|TightTwatBot|Titan|toCrawl/UrlDispatcher|True_Robot|turingos|TurnitinBot|UbiCrawler|UnisterBot|URLy Warning|VCI|WBSearchBot|Web Downloader/6\.9|Web Image Collector|WebAuto|WebBandit|WebCopier|WebEnhancer|WebmasterWorldForumBot|WebReaper|WebSauger|Website Quester|Webster Pro|WebStripper|WebZip|Wotbox|wsr\-agent|WWW\-Collector\-E|Xenu|yandex|Zao|Zeus|ZyBORG|coccoc|Incutio|lmspider|memoryBot|SemrushBot|serf|Unknown|uptime files" bad_bot
#Deny from env=bad_bot
# END Bad Bot Blocker

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

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

1
2
# directory browsing
Options All –Indexes

Защита админки в WordPress

Если у вас есть желание создать двухуровневый доступ для входа в панель администратора Вордпресс, тогда нужно проделать некоторые манипуляции:
Зайти на сайт htaccesstools.com/htpasswd-generator, откроется следующее окно в котором нужно ввести имя пользователя, а во вторую строчку ввести пароль(только сложный). Не вводите простые пароли типа 12345, толку от них никакого. Далее нажмите на кнопку Create .htpasswd и сохраните файл на свой компьютер.

Файл .htaccess

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

Потом сохраните следующий код в корневом файле htaccess.

1
2
3
4
5
6
AuthUserFile /home/k/lucky/myborder.ru/public_html/.htpasswd
AuthName "Private access"
AuthType Basic
<FilesMatch "wp-login.php">
Require valid-user
</FilesMatch>

Здесь нужно отметить, что в строке AuthUserFile /home/k/lucky/myborder.ru/public_html/.htpasswd указан абсолютный путь, если вы его не знаете, то можно узнать в техподдержке своего хостинга, либо создать файл .php с любым названием(например yourfile.php) и вписать в него этот код:

1
2
3
<?php
echo $_SERVER['DOCUMENT_ROOT'];
?>

разместить этот файл в корне вашего сайта, потом перейти на него. Набрав в адресной строке например myborder.ru/yourfile.php

Если вы сделали все как надо, тогда при входе в админку вам выдаст приглашение для ввода имени и пароля

Файл .htaccess

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

Рекомендую каждый пункт вводить поэтапно, то есть пробовать один за одним.

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

РАСШИРЕННАЯ НАСТРОЙКА ФАЙЛА htaccess

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

Перенаправление страниц ошибок.

Предлагаю начать с подмены страницы ошибок. Это бывает тогда, когда посетитель открывает ошибочную страницу и его перебрасывает на страницу ошибки, но многие знают ошибку 404, а бывают еще 400, 401, 403, 500, которые обозначают разные ошибки. Так вот, когда перебрасывают посетителя на такую страницу, то такой страницы может и не быть, а попросту открывается страница вашего провайдера, после открытия которой пользователь закрывает страницу и вы теряете данного посетителя.

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

1
2
3
4
5
6
ErrorDocument 400 /errors/br.html
ErrorDocument 401 /errors/aureq.html
ErrorDocument 403 /errors/fb.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/serv.html
#Замените /errors/*.html указание пути к странице с ошибки

Перенаправление по 301, 302 ошибкам.

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

1
2
RewriteEngine on
Redirect 301 /old-page 

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

1
2
3
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*)  [R=301,L]

Блокирование открытия картинок с вашего сайта

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

1
2
3
4
5
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Нужно изменить путь к своей картинке.
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/noHL.jpg [L]

Склеиваем зеркала сайтов

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

1
2
3
4
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.ваш-сайт\.ru$ [NC]
RewriteRule ^(.*)$  [R=301,L]

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

Перенаправление на главную страницу

А здесь происходит простое перенаправление со страниц вашсайт.ru/index.php и вашсайт.ru/index.html на главную страницу сайта.

1
2
3
4
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$  [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$  [R=301,L]

Кешируем браузер у клиента

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

1
2
3
4
5
6
7
8
9
10
11
12
Header append Cache-Control &amp;quot;private&amp;quot;
FileETag MTime Size
ExpiresActive On
ExpiresDefault &amp;quot;access plus 0 minutes&amp;quot;
ExpiresByType image/ico &amp;quot;access plus 1 years&amp;quot;
ExpiresByType text/css &amp;quot;access plus 1 years&amp;quot;
ExpiresByType text/javascript &amp;quot;access plus 1 years&amp;quot;
ExpiresByType image/gif &amp;quot;access plus 1 years&amp;quot;
ExpiresByType image/jpg &amp;quot;access plus 1 years&amp;quot;
ExpiresByType image/jpeg &amp;quot;access plus 1 years&amp;quot;
ExpiresByType image/bmp &amp;quot;access plus 1 years&amp;quot;
ExpiresByType image/png &amp;quot;access plus 1 years&amp;quot;

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

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

1
AddDefaultCharset UTF-8

Ограничение по числу подключении

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

1
MaxClients &amp;lt;кол-во подключений&amp;gt;

Разрешение запуска PHP внутри Javascript.

Бывают моменты, когда код внутри скрипта запускает какую-нибудь функцию.

1
2
3
4
5
AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js
&amp;lt;filesmatch &amp;quot;\.(js|php)$&amp;quot;&amp;gt;
SetHandler application/x-httpd-php
&amp;lt;/filesmatch&amp;gt;

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

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

Удачной вам правильной настройки htaccess!

Статьи по теме

Кнопка "Вернуться к началу"
Закрыть

Обнаружен Adblock

Пожалуйста, подумайте о том, чтобы поддержать нас, отключив свой блокировщик рекламы!