Создание htaccess. Попытка номер раз создать почти идеальный htaccess

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

order allow,deny deny from all satisfy all

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

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

Allow from 00.00.00.00

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

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

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

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

1 2 3 4 5 Order deny,allow Deny from all Allow from all

Order deny,allow Deny from all Allow from all

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

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

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

# 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

# directory browsing Options All –Indexes

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

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

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

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

разместить этот файл в корне вашего сайта, потом перейти на него..php

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

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

Это необходимо потому, что некоторые директивы в 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 указание пути к странице с ошибки

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, со старого адреса на новый, чтобы не злить поисковики. Ну к тому же случаи бывают разные, так что на ваше усмотрение. В итоге если посетитель пройдет по старому адресу, то его переадресует на новый и он не заметит редиректа страницы сайта.

Options +FollowSymLinks RewriteEngine on RewriteRule (.*)

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

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

RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(.+\.)?ваш-урл\.com/ RewriteCond %{HTTP_REFERER} !^$ #Нужно изменить путь к своей картинке. RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/noHL.jpg [L]

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

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

RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://вашсайт.ru RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://вашсайт.ru

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

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

1 2 3 4 5 6 7 8 9 10 11 12 Header append Cache-Control "private" 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"

Header append Cache-Control "private" 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"

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

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

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

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

1 2 3 4 5 AddType application/x-httpd-php .js AddHandler x-httpd-php5 .js SetHandler application/x-httpd-php

AddType application/x-httpd-php .js AddHandler x-httpd-php5 .js SetHandler application/x-httpd-php

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

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

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

Похожие записи

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

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

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

Настройкам, которые диктует файл подчиняется та директория, в которой.htaccess расположен, а также все входящие в нее директории.

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

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

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

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

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

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

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

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

Для адресов, относящихся к одной подсети, нужно указать вместо последней звездочки диапазон 0/*.
Например:

Allow from *.*.*.0/11

Если вы не знаете свой ip-адрес, воспользуйтесь одним из множества сервисов в интернете, например: https://2ip.ru/

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

Запрет доступа конкретным адресам

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

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

Тут, в отличие от прошлого примера, сначала дается доступ, а уже после — запрещается. Строка Allow from all дает доступ всем посетителям сайта. Третья строка блокирует доступ к сайту для выбранного ip. Как и в прошлый раз, добавляйте новые ip c новой строки. Обратитесь в техническую поддержку своего провайдера, чтобы узнать ip-адрес, с которого ведутся запросы к вашей площадке.

Установка пароля для доступа к папке.

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

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

AuthName «your_text» AuthType Basic Require valid-user AuthUserFile «полный_путь_к _файлу_.htpasswd»

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

Строка Require valid-user открывает доступ для любых имен пользователей. Указать свой список имен вы можете, перечисляя их через запятую вместо valid-user.

Логин и пароль для доступа к папке должны быть зашифрованы и содержаться в файле.htpasswd из этой же директории. В четвертой строке нужно указать путь к этому файлу. Для его создания также можно использовать файловый менеджер.

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

Файл.htaccess (англ. hypertext access) используется для простой и удобной настройки веб-сервера на котором хранится сайт пользователя. Соответственно меняя настройку веб-сервера, мы сможем поменять работу сайта. Как правило, файл.htaccess находится в корневом каталоге, а его действие распространяется на весь сайт и на все подкаталоги. Если же в другом каталоге содержится свой.htaccess, то он будет действовать только на свой каталог и подкаталоги.

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

Где находиться файл.htaccess?

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

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

Как проверить работает ли.htaccess?

Все просто, напишите в первой строчке этого файла любое слово (например YAROBOT), сохраните файл и замените им находящийся на сервере. Если сайт продолжит работать, то.htaccess в данный момент не работает. Если же появится ошибка 500 Internal Server Error, то это значит, что веб-сервер не смог понять команду (YAROBOT) и выдал ошибку. Этот факт подтвердит, что работа.htaccess на сервере поддерживается и включена в данный момент. Чтобы вернуть сайту работоспособность удалите строчку с YAROBOT.

Правильный 301 редирект через файл.htaccess

Важно! Если вы хотите, чтобы ваш редирект работал, нужно перед строками, которые рекомендуются ниже по тексту, обязательно прописать

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$
RewriteRule ^(.*)$ http://domain.com/$1

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

Перенаправление с http://site.com на http://www.site.com (не советуем использовать)

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteRule ^(.*)$ http://www.domain.com/$1

Редирект всех посетителей со старого сайта на новый

Redirect 301 / http://newsite.com/

Как добавить.html в конце URL?

Чтобы при вводе site.com/page или site.com/page/ происходило перенаправление на site.com/page.html пишем в.htaccess следующее:

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

Как убрать.html в конце URL?

Обратный редирект с site.com/page.html на site.com/page

RewriteBase /
RewriteRule (.*)\.html$ $1

Как убрать слэш в конце URL?

Например было site.com/page/, стало site.com/page

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1

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

Перенаправление всех страниц одного раздела site.com/razdel-1/razdel-2/page на на страницы другого раздела site.com/razdel-1/page

RewriteRule ^blog/raznoe/(.*)$ http://site.ru/blog/$1

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

Следующее правило корректно перенаправит посетителей с каждой конкретной страницы старого сайта на такую же страницу на новом сайте. Например со страницы oldsite.com/page на newsite.com/page

RewriteCond %{HTTP_HOST} ^www.oldsite.com$
RewriteCond %{HTTP_HOST} ^test.oldsite.com$
RewriteRule ^(.*)$ http://newsite.com/$1

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

Когда пользователь хочет увидеть сайт (отправляет запрос на сервер хостера), то сервер возвращает ему ответ с кодом. Коды 1-399 свидетельствуют о нормальной работе сервера, а коды 400-599 сообщают об ошибке сервера (коды всех ошибок смотрите в спец. статье). Например, если сервер с вашим сайтом перегружен, или у него происходит перезагрузка, то пользователь увидит непонятный ему текст (например, 500 Internal Server Error), подумает, что сайт больше не будет работать и больше никогда на него не вернется. Чтобы вместо стандартной страницы ошибки (непонятно для пользователя) показать ему вашу отдельную страницу, на которой будет например, сообщение о том, что сайт временно не работает, но позже восстановит свою работу и на него обязательно стоит вернуться (сайт КиноПоиск при перегрузки серверов выдает сообщение "Матрица перезагружается..." и соответствующую картинку). Наиболее распространенным решением является составление собственной страницы вместо стандартной 404-ошибки. Эта ошибка показывается пользователю, если введен адрес несуществующей страницы. Думающие вебмастеры, создают свою страницу вместо непонятной стандартной, на которой пишут, что человек перешел по несуществующей ссылке и предлагают поискать нужную информацию на сайте, а не уйти с него. Пример нашей 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

Файл.htaccess дает большие возможности для улучшения безопасности сайта. Наиболее популярные мы сейчас перечислим:

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

#Включает отслеживание сим-ссылок
Options +FollowSymLinks
#Запускает url_rewriting
RewriteEngine On
#Блокирует все ссылки, содержащие <script>
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E)
#Блокирует все скрипты, которые пытаются изменить переменные PHP Globals:
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%{0,2})
#Блокирует все скрипты, которые пытаются изменить переменную _REQUEST:
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%{0,2})
#Перенаправляет все подобные попытки на страницу с ошибкой 403 - запрещено
RewriteRule ^(.*)$ index.php

Как защитить сайт от кражи картинок

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

Options +FollowSymlinks
#Запрещает кражу картинок
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?yoursite.com/
RewriteRule .*.(gif|jpg|png)$ http://yoursite.com/images/stop_stealing.gif

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

Запрет доступа к конкретному файлу

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

order allow,deny
deny from all

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

Например чтобы запретить доступ ко всем файлам.txt пишем так:


Order Deny,Allow
Deny from all

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

Часто у пользователя в браузере установлено очень много расширений, которые передают серверу (на котором расположен ваш сайт) информацию о себе и другую лишнюю информацию. Такую же информацию посылают на сервер клиентские приложения установленные на компьютере пользователя, а также различные роботы и пауки. Информацию о большинстве актуальных на сегодня "Юзер Агентах" можно найти .

#Блокирует нижеперечисленных User Agent-ов
SetEnvIfNoCase user-Agent ^FrontPage
SetEnvIfNoCase user-Agent ^Java.*
SetEnvIfNoCase user-Agent ^Microsoft.URL
SetEnvIfNoCase user-Agent ^MSFrontPage
SetEnvIfNoCase user-Agent ^Offline.Explorer
SetEnvIfNoCase user-Agent ^ebandit
SetEnvIfNoCase user-Agent ^Zeus

Order Allow,Deny
Allow from all
Deny from env=bad_bot

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

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

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

Также кодировку нужно указывать в мета-теге каждой страницы сайта, это сообщает браузеру в какой кодировке сделан сайт.

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

AddDefaultCharset WINDOWS-1251

Если работают оба варианта (и мета-тег, и файл.htaccess), то очень важно, чтобы кодировка в них совпадала.

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

Чтобы выключить перекодировку сервера нужно вписать:

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

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

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


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 no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html

mod_gzip_on Yes
mod_gzip_item_include file \.js$
mod_gzip_item_include file \.css$

FileETag MTime Size


ExpiresActive on



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.*

Как улучшить кэширование сайта на сервере?

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


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"
FileETag MTime Size


ExpiresActive on
ExpiresDefault "access plus 1 month"

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

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

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

Настройка 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


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

php_flag display_startup_errors 1


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


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


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


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

директива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 - задает максимальный размер пересылаемой почты


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

php_value mysql.default_user databaseuser


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

php_value mysql.default_password jk323jh4g


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

php_value mysql.default_host localhost


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


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 новичку? Файл.htaccess, как правило, имеет только расширение под Unix — системы. И приносит пользу сайтам под управлением сервера Apache. Htaccess имеет набор правил для определенного сайта на сервере. Которые сервер Apache исполняет во время работы сайта. Благодаря ему, можно указать значительное количество полезных правил для сайта.

Инструкция для создания файла.htaccess:

  1. Для того, чтобы создать этот файл! Достаточно воспользоваться любым доступным текстовым редактором (к примеру блокнотом).
  2. Название (.htaccess) — без кавычек и прочего.
  3. Сохраняем файл.
  4. Затем переносим его на Ваш сервер (хостинг) с помощью FTP клиента. Обязательно в корневую директорию сайта.
  5. Далее его можно редактировать как угодно. Но обязательно обновляйте версию файла на сервере (хостинге).

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

Особенности настройки файла.htaccess и распространенные ошибки

Именно так, этот файл чаще всего вызывает банальную серверную ошибку 500 Internal Server Error . Редактировать файл необходимо очень осторожно. А также, следовать следующим правилам:

  1. Всегда перед началом редактирования.htaccess файла, сохраняйте его рабочею копию.
  2. Никогда не вносите новые правила на рабочий сайт. Нужна начальная проверка файла.
  3. Кодировка, как правило UTF -8.
  4. Каждое правило нужно писать с новой строчки.
  5. Исключаются те инструкции, которые не обрабатывает сервер Apache. Сразу вызывают серверную ошибку.
  6. Нельзя писать несколько инструкций в одной строке. Ошибка 500 будет Вам обеспечена.
  7. Будьте внимательны! Лишний пробел или символ могут привести к ошибке.

Какое влияние оказывает.htaccess файл на сайт

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

  1. Настройка 301-го редиректа на сайте (распространенное правило). Может использоваться под необходимые задачи.
  2. Настройки хеширования сайта на стороне сервера.
  3. Включение сжатия gzip (сокращенно от GNU Zip). Сжатие файлов на стороне сервера.
  4. Обеспечить защиту сайта: блокировка ip адресов, запреты и прочее.
  5. Указать необходимый объем выделяемой памяти для сайта.

Файл .htaccess (Hypertext Access, Доступ к гипертексту ) — это конфигурационный файл сервера, который находится в корневой папке сайта. В этом файле можно сделать дополнительные настройки для защиты от хакеров и спама, например, запретить доступ к определенному файлу или папке, установить пароль на папку, добавить редиректы каких-то запросов, заблокировать ip и так далее. Это мощный инструмент, который можно использовать для увеличения безопасности сайта.

В этой статье вы узнаете, что можно добавить в файл .htaccess для увеличения безопасности сайта.

Что может делать.htaccess

Файл .htaccess находится в корневой папке сайта. Точка перед названием файла означает, что файл невидим, и вы сможете его видеть если включите настройку «Показывать скрытые файлы».

Отображать скрытые файлы в Filezilla

Файл используется для настройки сервера, типичное применение файла:

  • Включает и отключает редиректы на другие страницы
  • Добавляет пароль на папки
  • Блокирует пользователей по IP
  • Отключает показ содержимого папок
  • Создает и использует собственные страницы для ошибок

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

Если вы уже знаете, для чего нужен этот файл, переходите к .

Сделайте бэкап

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

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

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

Если ваш сервер или компьютер не позволяет создать файл с таким именем, создайте файл htaccess.txt, перенесите его на сервер и на сервере переименуйте его в .htaccess .

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

Для одиночной установки:

Для мультисайт установки, версия Вордпресс 3.5 или выше, если сайты находятся в подпапках:

Для мультисайт установки, версия Вордпресс 3.5 или выше, если сайты находятся на субдоменах:

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

Куда добавлять изменения

Строки, начинающиеся с тега #, являются комментариями и не являются правилами для исполнения .htaccess .

Добавляйте свои комментарии к вашим правилам.

Когда вы добавляете свои правила, добавляйте их выше или ниже стандартных правил Вордпресс.

Не добавляйте и ничего не редактируйте между строками # BEGIN WordPress и # END WordPress . Для мультисайт установок таких комментариев нет, но не добавляйте и не редактируйте ничего в коде для мультисайт установок.

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

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

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