Конфигурационный файл.htaccess. Как создать и правильно настроить файл htaccess? Управление доступом к директориям и файлам

.htaccess (от. англ. hypertext access) - файл дополнительной конфигурации веб-сервера Apache, и некоторых других, подобных ему серверов.

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

Важно! Как правило, файл.htaccess устанавливается на хостинге (веб-сервере) вместе с установкой сайта, но если его там нет, тогда вы можете создать этот файл с помощью блокнота. Для этого откройте блокнот, добавьте туда необходимые для вас директивы, примеры которых будут приведены ниже, и сохраните как текстовый документ, с названием – .htaccess. Потом просто уберите расширение.txt, и файл готов.

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

Важно! Работоспособность указанных ниже правил (директив) зависит от настроек вашего web-сервера, заданных хостером, поэтому некоторые директивы могут быть запрещены и не работать.

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

Правила.htaccess

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

Options +FollowSymlinks
#Запрещаем загрузку файлов с внешних сайтов
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?your_domain.com/
RewriteRule .*.(gif|jpg|png)$ http://your_domain.com/img/goaway.gif

Не забудьте изменить your_domain.com на ваше доменное имя и создать изображение goaway.gif, которое будет показано вместо запрошенной картинки.

2. Блокируем все запросы от нежелательных User Agents
Это правило позволяет блокировать нежелательные User Agents , которые могут быть потенциально опасными или просто ненужными запросами перегружать сервер:

#Блокируем нежелательных ботов и роботов
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

Список User Agent браузеров, роботов и пауков поисковых машин, веб-каталогов, менеджеров закачек, спам-ботов и плохих ботов можно найти на сайте http://www.user-agents.org/

3. Запрещаем доступ для всех, кроме указанных IP-адресов
Если по какой-либо причине, вы хотите запретить всем или разрешить только отдельным IP-адресам доступ к вашему сайту - добавьте этот код в ваш.htaccess-файл:

#Запрещаем доступ для всех, кроме указанных IP-адресов
ErrorDocument 403 http://your_domain.com
Order deny,allow
Deny from all
Allow from IP1
Allow from IP2 и т. д.

Не забудьте изменить your_domain.com и IP1,2 и т.д. на ваше доменное имя и необходимые IP-адреса соответственно.

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

#Создаем черный список IP адресов
allow from all
deny from IP1
deny from IP2 и т. д.

В случае, если причиной блокировки IP-адреса является назойливые спам-комментарии, узнать IP-адреса комментаторов можно или в логах Apache, или с помощью сервисов статистики. Для WordPress, IP-адреса комментаторов можно увидеть в административной панели. Таким же образом возможно заблокировать доступ на сеть IP-адресов, указав «deny from IP/маска сети».

#Создаем черный список для подсети
allow from all
deny from 192.168.0.0/24

5. Настраиваем SEO-Friendly 301 Redirect
Если вы перенесли доменное имя или хотите перенаправлять пользователя на определенную страницу (страницы), без санкций со стороны поисковых машин, используйте этот код:

#Настраиваем SEO-Friendly 301 Redirect
Redirect 301 /d/file.html http://your_domain.com/r/file.html

Не забудьте изменить your_domain.com на ваше доменное имя, а /d/file.html и /r/file.html на соответствующие директории и страницы.

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

ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

Не забудьте создать в корневой директории вашего сервера папку «error» и разместить в ней соответствующие файлы.

7. Устанавливаем e-mail адрес по умолчанию для администратора сервера
Используйте данный код, для того, чтобы установить e-mail адрес по-умолчанию для администратора сервера:

#Устанавливаем e-mail адрес по умолчанию для администратора сервера
ServerSignature EMail
SetEnv SERVER_ADMIN default@your_domain.com

Не забудьте заменить default@your_domain.com- необходимым вам e-mail адресом.

8. Защищаем определенный файл
Приведенный ниже код позволяет вам запретить доступ к любому файлу - при запросе будет выдаваться ошибка 403. На примере закрыт доступ к самому файлу.htaccess – таким образом можно повысить уровень безопасности сайта:

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

order allow,deny
deny from all

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

#Сжимаем компоненты сайта путем включения Gzip
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

Обратите внимание, что включение компрессии приведет к большей нагрузке на процессор сервера.

10. Сжимаем элементы с помощью mod_deflate
В качестве альтернативы компрессии файлов с помощью Gzip, вы можете использовать mod_deflate (предположительно, работает быстрее). Разместите следующий код в начале вашего файла.htaccess (так же вы можете добавить.jpg|.gif|.png|.tiff|.ico):

#Сжимаем элементы с помощью mod_deflate


SetOutputFilter DEFLATE

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

#Добавляем срок жизни в заголовки

Header set Expires “Wed, 31 December 2014 20:00:00 GMT+2”

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

#Устанавливаем альтернативную страницу по умолчанию
DirectoryIndex yourpage.html

Не забудьте заменить yourpage.html - необходимой вам страницей

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

#защита паролем файла

AuthType Basic
AuthName “Prompt”

Require valid-user

#защита паролем папки
resides
AuthType basic
AuthName “This directory is protected”
AuthUserFile /pub/home/.htpasswd
AuthGroupFile /dev/null
Require valid-user

Для того, чтобы организовать доступ к файлу по паролю, необходимо создать файл .htpasswd и внести в него пару логин-пароль в формате user:password . Однако в этом случае пароли будут хранится в открытом виде, что не слишком хорошо с точки зрения безопасности. Поэтому оптимальным решением будет пароль зашифровать. Для этого воспользуйтесь сервисами генерации записей в файлы.htpasswd.
Например, http://www.htaccesstools.com/htpasswd-generator/
В примере файл с паролями доступа лежит в корневой директории сайта и называется.htpasswd. Директория указывается от корня сервера и если путь будет некорректным - Apache, не получив доступа к файлу, откажет в доступе к папке любому пользователю - в том числе и тому, который ввел правильную пару логин: пароль.

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

#Перенаправляем со старого домена – на новый
RewriteEngine On
RewriteRule ^(.*)$ http://www.yournewdomain.com/$1

Перенаправление используется в том случае, если вы переносите свой существующий сайт на новое доменное имя. В этом случае любой пользователь, который наберет в адресной строке http://www.yourolddomain.com - будет перенаправлен на http://www.yournewdomain.com.

15. Усиливаем кеширование
Использование этого правила не означает прямое ускорение загрузки вашего сайта. Оно предназначено для более быстрой загрузки сайта - для уже заходившего на него посетителя, путем отправки статуса 304 для тех элементов, которые не обновлялись. Таким образом, при повторной загрузке страницы браузер посетителя не будет заново скачивать изображения, скрипты или CSS, а выведет те файлы, которые уже хранятся в его кеше. Вы можете изменить срок жизни кеша, путем корректирования его значения в годах (year), месяцах (month) или, например - секундах (seconds):

#Усиливаем кеширование
FileETag MTime Size


ExpiresActive on
ExpiresDefault “access plus 1 month”


В примере указан 1 месяц.

16. Удаляем «category» из URL
Для изменения ссылки http://yourdomain.com/category/news на http://yourdomain.com/news, просто добавьте следующий код в конце вашего.htaccess файла:

#Удаляем category из URL
RewriteRule ^category/(.+)$ http://www.yourdomain.com/$1

Не забудьте изменить http://www.yourdomain.com на ваше доменное имя.

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

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

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

18. Перенаправляем RSS-ленту WordPress на FeedBurner
Этот код позволяет перенаправить RSS-ленту СMS WordPress на сервис Google Feedburner:

#Перенаправляем RSS-ленту WordPress на FeedBurner

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteCond %{HTTP_USER_AGENT} !FeedValidator
RewriteRule ^rss.xml$ http://feeds.feedburner.com/yourfeed

Изначально необходимо зарегистрировать ленту своего блога в сервисе Feedburner от Google. Далее не забудьте заменить yourfeed на имя вашей ленты уже в Feedburner .

19. Запрещаем комментарии от пользователей без Referrer
Чаще всего спам-боты обращаются напрямую к файлу wp-comments-post.php, не заходя на страницы записей вашего блога. Приведенный ниже код позволяет заблокировать комментарии, отправленные пользователями, которые пришли «из ниоткуда», позволяя комментировать тем читателям, которые перешли на страницу вашего блога с каких-либо других страниц (например, результатов поиска Google, Yandex и т.д.):

#Запрещаем комментарии от пользователей без Referrer
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*

RewriteCond %{HTTP_REFERER} !.*yourblog.com.*
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$
Не забудьте заменить yourblog.com на доменное имя вашего блога.

20. Убираем расширение файла из URL
Данный код позволяет удалить расширение файла.php (вы можете изменить его на любое другое, например на т 2.html) из URL-адресов страниц:

#Убираем расширение файла из URL
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

21. Защищаем сайт
Данный код позволяет защитить ваш сайт от scripts enjection и нежелательных модификаций «_REQUEST » и/или «GLOBALS »:

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

.
Чем больше развиваешься, тем больше начинаешь познавать. Я так же, немного освоившись в настройке файла 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. Подкорректируйте код под свой вариант.

1 2 3 4 Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.ваш-сайт\.ru$ RewriteRule ^(.*)$ http://ваш-сайт.ru/$1

Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.ваш-сайт\.ru$ RewriteRule ^(.*)$ http://ваш-сайт.ru/$1

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

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

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

(11 )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Откройте Блокнот, ничего в нем не пишите.
  • Выберите пункт «Файл» и нажмите «Сохранить как» .
  • Появится окно, где напротив пункта «Тип файла» выберите « All types» или «Все файлы» .
  • В строке «Имя файла» введите . htacces и кликните на «Сохранить» .
  • Далее перепроверьте, создан ли документ правильно. Обязательно посмотрите, не сохранили ли вы его как.htaccess.txt. Затем загрузите файл в корневую папку сервера, и если не отобразится ошибка 500, значит, вы все сделали правильно.

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

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

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

    Редирект

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

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

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

    Redirect URL_LOCAL URL_REDIRECT

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

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

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

  • 301 – страница перенесена навсегда.
  • 302 – страница перенесена на время.
  • 303 – смотрите другую страницу.
  • 410 – страница удалена.
  • Mod_rewrite (директивы сложного переноса)

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

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

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

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

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

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

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

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

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

    RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/

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

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

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

    RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.yoursite.ru\.ru$ RewriteRule ^(.*)$ http://www.your-site.ru/$1

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

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

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

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

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

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

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

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

    ErrorDocument 404 /siteerror404.html

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

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

    DirectoryIndex name.xml

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

    DirectoryIndex index.html index.php index.pl

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

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

    AddDefaultCharset WINDOWS-1251

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

    CharsetSourceEnc WINDOWS-1251

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

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

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

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

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

    Deny from all

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

    deny from all

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

    Order Deny,Allow Deny from all Allow from 12.345.678.90

    Заключение

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

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

    Файл.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} (\|%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