Как создать правильный файл.htaccess. Как Создать Стандартный Файл.Htaccess в WordPress Куда добавлять изменения

Windows 8
  • Tutorial

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

.htaccess - наш герой

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

Зачем нам.htaccess ?

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

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

А ещё htaccess может решить некоторые вопросы с безопасностью вашего сайта.

Хочу идеальный.htaccess !

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

1. Первой строкой задаем основные опции:


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

Опция -ExecCGI запрещает запуск CGI скриптов. Лучше разрешить только для конкретных папок. Повысит безопасность.
Опция -Indexes запрещает показывать содержимое каталогов, если в них нет индексного файла. На виртуальном хостинге обычно включена по умолчанию. Изменив минус на плюс +Indexes можете наоборот разрешить просмотр содержимого каталога (или каталогов).
Опция -Includes запрещает SSI. Если не знаете, что это - запрещайте (Можно поЯндексировать(!) по запросу Server Side Include если хотите узнать об этом побольше). Можно использовать опцию IncludesNOEXEC, которая разрешит использовать SSI без запуска скриптов.
Опция +FollowSymLinks позволяет использовать символические ссылки на файлы или каталоги, не находящиеся в пределах корня вашего сайта.

Примечание

Вы можете использовать htaccess с разными настройками для разных каталогов. В корне сайта вы можете объявить -Indexes, а в избранных каталогах создать ещё один файл.htaccess и в нем объявить +Indexes. Помните, что действие опций htaccess распространяет сверху вниз по дереву каталогов до самой глубокой вложенности, пока не будут отменены другим htaccess.

Необязательно полностью перечислять все опции в дочерних.htaccess если они не изменяются. Достаточно указать (переназначить) только те опции и директивы, которые изменяются. Остальные опции также унаследуются от родителя.


Пример

Скажем, у вас есть вот такой путь /site/folder_one/subfolder/other/
В файле /site/.htaccess вы указываете:
Options -Indexes Allow from all
В файле /site/folder_one/.htaccess указываете:
Deny from all
В файле /site/folder_one/subfolder/.htaccess указываете:
Options +Indexes Allow from all
Получиться вот что:
В папке site будут показываться файлы любого содержания, если только к ним напрямую обратиться. Или индексный файл, если не явного обращения к одному из файлов. В случае отсутствия индексного файла получена 403 ошибка.
К папке folder_one доступ закрыт. Даже если знать имя файла и набрать его в адресной строке в ответ сервер вернет ошибку 403.
Папка subfolder разрешена для обращений по прямому адресу или же в случае отсутствия индексного файла покажет содержимое каталога. Эти же права распространяться и на папку other.
Если убрать файл,htaccess из папки folder_one, то она унаследует права от родительской site.


2. Немного SEO (куда же без него)


Обязательно не забыть про условие . Не окажись у хостера данного модуля и ваш сайт станет выдавать 500-ую ошибку. Данный конкретный модуль входить в сборку Апача по-умолчанию. Ну а вдруг… Хостеры и их админы бывают всякие.

В данной части пользы больше для SEO. Модуль rewrite как следует из его названия занимается перенаправлениями (привет Кэпу) .

В этой части файла мы указали две склейки: мы склеили ваш_сайт и www.ваш_сайт Даже если пользователь наберет ваш сайт без WWW его перебросить 301 редериктом на www.ваш_сайт .
А также мы избавились /index.php в строке запроса. Если пользователь наберет www.ваш_сайт/index.php его перебросит (снова 301 редериктом) на www.ваш_сайт .
Теперь поисковики не будут путаться между www и не будут дублировать главную страницу в результатах индексирования вашего сайта. Гуглим СЕО склейки домена, если не понимаете зачем это нужно.

3. Кто в папке главный?

Если у вас папке есть файлы index.html и index.php (не знаю, зачем и кому такое было нужно, но не раз видел такое) то как указать серверу кто их них более индексный?

DirectoryIndex index.php
А ещё можно там указать скажем roosso.php и тогда набрав в строке запроса адрес сайт.бла/бла/бла/ вы увидете не index, а roosso

4. Ещё настройки…

SetEnv TZ Europe/Moscow ServerSignature Off AddDefaultCharset UTF-8
Первая строчка устанавливает часовой пояс. Например в Apache 2.22.22 был баг связанный с этой опцией. Функции времени в php не работали, пока не установишь часовой пояс.

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

Угадайте, что делает третья строка?

5. Когда нет доступа к php.ini

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


Первая строчка разрешить загружать файлы размером до 32 Мегабайт. По умолчанию в php обычно это значение 8 или 16 мегабайт.
Второй строкой разрешаем постинг объемом до 10 мегабайт. По умолчанию это значение обычно 2 Мегабайта.
Третья строка устанавливает кодировку по используемую вашими скриптами. По своей сути она дублирует строку: «AddDefaultCharset UTF-8». Но я чаще прибегаю к установке кодировки именно через php.
Четвертой строкой изменяем лимит времени выделенный на выполнение скрипта. По умолчанию он обычно равен 30 секундам. Но иногда для выполнения каких нибудь сложных обработок требуется больше времени.

6. Типы файлов. Ловкость рук и ни какого мошенничества.

В моей практике случалось пару раз, что после какого либо обновления провайдером софта, слетали типы файлов. Хотя такое редко. За 10 лет, всего два случая. Но иногда мне нужно было заставить html работать как php. А иногда требуется научить апач различать типы файлов, которые ему неизвестно. (Как оказалось Апачу вообще мало что известно из редких типов файлов.) В такой ситуации нас спасет следующий код:

AddHandler application/x-httpd-php .html AddHandler cgi-script .pl .py .jsp .asp .htm .shtml .sh .cgi AddType application/x-javascript .js AddType text/css .css AddType text/xml .xml AddType application/octet-stream .doc .mov .avi .pdf .xls # ForceType application/x-httpd-php

Первая строчка позволит нашим php файлам иметь расширение html, но выполняться как php. Полезно бывает во многих случаях. А в старые добрые когда поисковики индексировали ЧПУ лучше, такая строчка всегда приходила на выручку.
Мы можем переназначить, добавить или подменить любые типы файлов под удобные нам разрешения.

Интересный трюк

Кстати, вы можете легко написать к примеру вот такую строку:

AddHandler application/x-httpd-php .i
Потом переименовать все ваши файлы, изменив расширение на.i (не забыв конечно про ссылки) и адреса файлов у вас на сайте будут не сайт.мой/index.php?uri а сайт.мой/index.i?uri

Например я пишу
AddHandler application/x-httpd-php .roosso
и создаю в корне своего сайта файл alex.roosso внутри обычный php код. Это вроде как страница обо мне любимом. И в адресной строке она будет выглядеть как www.black-web.ru/alex.roosso (ссылка рабочая, можете посмотреть что это так).


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

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

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

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

7. Знают взрослые и дети, что архивы меньше весят…

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

У Апача есть два модуля сжатия. Оба не являются модулями по умолчанию, поэтому необязательно могут присутствовать у вашего провайдера. Но как показала практика у 99% провайдеров один из них стоит. Наиболее распространен mod_deflate. Чтобы его с помощью сжимать весь контент на вашем сайте добавьте в.htaccess следующие строки:


Как видите мы должны перечислить mime type файлов, которые следует подвергать сжатию. Сюда можно добавить и видео и картинки, но толку это даст мало. Потому что jpeg или gif уже сами по себе являются сжатыми форматами. Также как avi или flv. Вы фактически нечего не выиграете указав их.

Второй менее популярный модуль это mod_gzip, Чтобы включить сжатие с его помощью добавьте вот такие строчки:


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

8. А ещё быстрее можно?

Можно. Если применить кеширование страниц. У кеширования есть и плюсы и минусы, поэтому подходить к этому вопросу надо подготовившись. Для динамически обновляющегося сайт каждый 2-3 минуты, например популярного форума, нужно учесть, что пользователь должен видеть актуальную информацию. Но у любого сайт есть контент, который более или менее статичен. Например те же картинки, или файлы стилей. Поэтому нам потребуется по разному использовать кеширование различного содержимого на сайте. В html разметки мы всегда можем использовать meta теги. И через php мы может устанавливать заголовки ответа сервера. Остается вопрос, как быть с css, js, image и т.д. и т.п.

Помочь нам в этом могут два модуля: mod_headers и mod_expires которые могут установить заголовки в ответ сервера и подсказать вашему браузеру, что и как нужно кешировать. Один из модулей обычно стоит у провайдера, но как и в случае с любым модулем, который не входит в стандартную сборку Апача, 100% гарантии никто вам не даст. Поэтому снова во избежание 500й ошибки указывает условия для каждого из модулей.

#отключить кэширование
Вот такой синтаксис у mod_headers. Думаю по комментариям ясно что к чему.
В данной секции я отключил кеширование php файлов. Хотя по моему мнению небольшой временной интервал кеширования им не повредит. 5-30 секунд, это интервал времени, за который мало что меняется. А многие пользователи любят пользоваться клавишей back (вернуться назад). Чтобы не загружать им страницу второй раз, а подхватить её из кеша, разумный интервал кеширования все же уместен.

Во второй секции где идут условия для mod_expires я именно так и делаю - для php ставлю небольшой интервал кеширования.

9. Правила вежливого тона…

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

# Bad Rquest ErrorDocument 400 /400.html # Authorization Required ErrorDocument 401 /401.html # Forbidden ErrorDocument 403 /403.html # Not found ErrorDocument 404 /404.html # Method Not Allowed ErrorDocument 405 /405.html # Request Timed Out ErrorDocument 408 /408.html # Request URI Too Long ErrorDocument 414 /414.html # Internal Server Error ErrorDocument 500 /500.html # Not Implemented ErrorDocument 501 /501.html # Bad Gateway ErrorDocument 502 /502.html # Service Unavailable ErrorDocument 503 /503.html # Gateway Timeout ErrorDocument 504 /504.html
Для 400-х ошибок можно использовать и динамические страницы на php. А вот для 500 лучше сделать на html и js. Это часть ошибок обычно связана с ошибками сервера (в большинстве случаев) и php или cgi как правило в такой ситуации не работают.

Если вам лень делать столько страниц устанавливайте страницей ошибок главную страницу своего сайта или карту сайта.

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

10. Подведем итог

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

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

Options All -ExecCGI -Indexes -Includes +FollowSymLinks RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^black-web RewriteRule (.*) http://www.black-web.ru/$1 RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://www.black-web.ru/ DirectoryIndex index.php SetEnv TZ Europe/Moscow ServerSignature Off #AddDefaultCharset UTF-8 php_value upload_max_filesize 32M php_value post_max_size 10M php_value default_charset utf-8 php_value max_execution_time 200 AddHandler application/x-httpd-php .html AddHandler cgi-script .pl .py .jsp .asp .htm .shtml .sh .cgi AddType application/x-javascript .js AddType text/css .css AddType text/xml .xml AddType application/octet-stream .doc .mov .avi .pdf .xls # ForceType application/x-httpd-php AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ 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.* #кэшировать html и htm файлы на один день Header set Cache-Control "max-age=43200" #кэшировать css, javascript и текстовые файлы на одну неделю Header set Cache-Control "max-age=604800" #кэшировать флэш и изображения на месяц Header set Cache-Control "max-age=2592000" #отключить кэширование Header unset Cache-Control ExpiresActive On #по умолчанию кеш в 5 секунд ExpiresDefault "access plus 5 seconds" #кэшировать флэш и изображения на месяц ExpiresByType image/x-icon "access plus 2592000 seconds" ExpiresByType image/jpeg "access plus 2592000 seconds" ExpiresByType image/png "access plus 2592000 seconds" ExpiresByType image/gif "access plus 2592000 seconds" ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" #кэшировать css, javascript и текстовые файлы на одну неделю ExpiresByType text/css "access plus 604800 seconds" ExpiresByType text/javascript "access plus 604800 seconds" ExpiresByType application/javascript "access plus 604800 seconds" ExpiresByType application/x-javascript "access plus 604800 seconds" #кэшировать html и htm файлы на один день ExpiresByType text/html "access plus 43200 seconds" #кэшировать xml файлы на десять минут ExpiresByType application/xhtml+xml "access plus 600 seconds" # Bad Rquest ErrorDocument 400 /400.html # Authorization Required ErrorDocument 401 /401.html # Forbidden ErrorDocument 403 /403.html # Not found ErrorDocument 404 /404.html # Method Not Allowed ErrorDocument 405 /405.html # Request Timed Out ErrorDocument 408 /408.html # Request URI Too Long ErrorDocument 414 /414.html # Internal Server Error ErrorDocument 500 /500.html # Not Implemented ErrorDocument 501 /501.html # Bad Gateway ErrorDocument 502 /502.html # Service Unavailable ErrorDocument 503 /503.html # Gateway Timeout ErrorDocument 504 /504.html

11. Послесловие.

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

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

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

Содержание:
  • § 1. Файл.htaccess
  • 1.1. Как создать файл.htaccess
  • 1.2. Настройка.htaccess.
  • § 2.
  • 2.2. Перенаправление старых ссылок на новые страницы с помощью редиректа 301
  • § 3. Ограничение доступа
  • 3.2. Защита поролем

§ 1. Файл.htaccess

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

Особенности использования htaccess:

1. В нем можно переопределить большое количество директив, прописанных в главном файле httpd.confg

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

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

4. Htaccess не доступен пользователю для просмотра из браузера, так как относится к категории «системные».

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

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


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

Порядок действий для создания.htaccess :

1. Открыть текстовый редактор (Notepad++ или даже обычный Блокнот ).

2. В меню "Файл " выбрать "Сохранить как ".

3. В выпадающем списке "Тип файла " выбрать "Все файлы ".

4. Ввести в качестве имени ".htaccess " (без кавычек).

§ 2. Примеры использования файла.htaccess

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

2.1. Ошибка 404 или как удержать посетителя

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


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

Можно сделать свою страницу с сообщением об ошибке 404. К примеру:

"Тысячу извинений! Произошло недоразумение! О братитесь за помощью к карте сайта, это поможет найти все что надо. Приятного вам путешествия!"

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

Создаем собственной страницы ошибок

1 . Открываем Блокнот (текстовый редактор).

2. Вставляем туда следующий код:

ErrorDocument 404 http://ваш_сайт/myerror.html

где ваш_сайт - доменное имя вашего сайта, а myerror - название страницы 404 ошибки.

3. Сохраняем этот файл с именем.htaccess. Файл.htaccess управляет страницей 404.

4. Загружаем его в корневую директорию сайта. Созданная нами запись указывает серверу новое месторасположение и название страницы ошибок.

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

6. Наберите в браузере строку http://ваш_сайт/ /abracadabra.html и увидите результат проделанной работы.

Наличие собственной страницы ошибки 404 не является решением всех проблем.

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

1. Удостоверьтесь, что Вы правильно написали и не забыли точку в начале имени файла: .htaccess.

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

3. Собственная страница ошибки 404 не даст испортить репутацию как Вам, так и Вашему ресурсу!

2.2. Перенаправление старых ссылок на новые страницы с помощью редиректа 301

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

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

Redirect 301 http://domen.ru/old-page/ http://domen.ru/archive/new-page/

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

2.3. Склейка зеркал при помощи 301 редиректа

Редирект 301 так же используют для переадресации страниц с префиксом www на страницы без www или наоборот. Для поисковых систем сайт ваш_сайт.ru - это два сайта с одинаковым содержанием, имеющие адреса: http://www.ваш_сайт.ru/ и http://ваш_сайт.ru. Такие сайты называются зеркалами.Таким образом, часть тиц и pr уходят с одного сайта на другой. Чтобы этого не происходило, и поисковые машины считали два этих сайта одним, произвести "склейку зеркал", то есть перенаправить пользователей и поисковых роботов с сайта с префиксом www на сайт без www или наоборот. Для этого в файле.htacces надо написать:

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

мы настроили переадресацию со всех страниц сайта с префиксом www

§ 3. Ограничение доступа

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

Чтобы запретить доступ ко всему сайту, необходимо в файле.htacces написать следующее:

deny from all

Запретить доступ только с конкретного ip-адреса:

deny from all
order allow deny
deny from all
deny from ip_адрес_пользователя

"ip_адрес_пользователя" необходимо заменить на конкретный ip-адрес.

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

order allow deny
deny from all
allow from ip_адрес_пользователя

3.1. Защита файла от хотлинка

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

Защитить файлы от хотлинка при помощи файла.htaccess можно добавив в него две строчки:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?ваш_сайт.ru.*$
RewriteRule \.(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ -

В скобочках через символ "|" указаны расширения файлов, доступ к которым будет запрещен всем, за исключением сервера и пользователей сайта ваш_сайт.ru

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

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?ваш_сайт.ru
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yandex.ru
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yahoo.
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google.
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?bing.
RewriteRule \.(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ -

3.2. Защита поролем

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

Чтобы установить пароль на директорию, в.htaccess необходимо написать :

AuthName "What do you want?"
AuthType Basic

require valid-user

Файл.htaccess, содержащий эти строки необходимо поместить в директорию, доступ к которой мы хотим закрыть. При попытке пользователя зайти на соответствующий раздел сайта сервер отдаст код статуса 401 (требуется авторизация) и выведет окно с полями для ввода имени пользователя и пароля и сообщением "What do you want?", указанным в директиве "AuthName" (допускаются только латинские символы и цифры).

Имена пользователей и пароли хранятся в файле.htpasswd. Путь к этому файлу задается в директиве "AuthUserFile".

Важно: путь к файлу.htpasswd указывается абсолютный, от корневого каталога сервера .

Чтобы узнать путь к.htpasswd, который необходимо указать в.htaccess, можно создать файл php, содержащий:

< ?php echo $_SERVER["DOCUMENT_ROOT"]; ? >

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

Установить пароль на конкретный файл можно следующим образом:

< Files file.txt >
AuthName "It"s not for all"
AuthType Basic
AuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswd

Пароль на группу файлов:

< Files "\.(sql)$" >
AuthName " It"s not for all "
AuthType Basic
AuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswd

В данном случае все файлы, имеющие расширение.sql будут доступны только по паролю.

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

Сервер Apache (на котором и находится большинство сайтов) имеет очень полезную возможность задавать определённые настройки сервера для конкретной директории (в частности, для одного сайта). Такой файл называется .htaccess . Однако, создавать его в Windows-системе так просто не получится. В этой статье я расскажу новичкам, как создаётся.htaccess в Windows .

Особенность файла состоит в том, что он не имеет имени, у него лишь расширение. Это норма для Unix-систем , но в Windows это не совсем норма. Итак, порядок действий для создания.htaccess следующий:

  1. Открыть текстовый редактор (Notepad++ или даже обычный Блокнот ).
  2. В меню "Файл " выбрать "Сохранить как ".
  3. В выпадающем списке "Тип файла " выбрать "Все файлы ".
  4. Ввести в качестве имени ".htaccess " (разумеется, без кавычек).
  5. Нажать на кнопку "Сохранить ".

Для новичков кое-что добавлю. В этом файле надо сразу прописать кодировку сайта. Если это UTF-8 :

AddDefaultCharset UTF-8

Если это windows-1251 :

AddDefaultCharset CP1251

Далее этот файл надо поместить в корень сайта, там где находится index-файл (как правило, это index.html или index.php ). Я об этом написал, поскольку у многих новичков проблемы с кодировкой на сайте именно по этой причине.

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

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

Поддерживает ли ваш хостер.htaccess?

Это наверное самый сложный вопрос, на который сразу не ответишь! Иногда хостеры поддерживают.htaccess, только вот своим пользователям запрещают пользоваться этим сервисом. Если же вы на фтп заметили что там присутствует файл.htaccess, тогда не спешите его заменять, и лучше обратитесь в support (службу поддержки). По обычаю, если на сервере установлен Unix или Linux, то сервер поддерживает.htaccess. Я знаю три сайта которые поддерживают.htaccess, это:

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

Очень просто. Заходим в Блокнот (Notepad), пишем текст который будет ниже и потом нажмем на "Сохранить Как" ("Save As)", выбираем тип файла "Все Файлы" *.* ("All Files" *.*) и в поле "Имя файла" пишем.htaccess . Если же вы не можете сделать это, то не огорчайтесь и сохраните его просто как.htaccess.txt файл, а когда закачаете на фтп, используя свой ФТП клиент, измените имя на.htaccess .

ВНИМАНИЕ: Перед использованием.htaccess, я вас предупреждаю: даже если используя.htaccess на вашем сервере чрезвычайно нежелательно, т.к. могут возникнуть некоторые проблемы (если что-то неверно, то он просто не будет работать), Вы должны настороженно относиться к Microsoft FrontPage Extensions. Microsoft FrontPage Extensions использует.htaccess, так что не советую вам изменять полностью его (файл.htaccess) или добавлять самому информацию и заменять свой.htaccess на.htaccess сервера. Если уж вас очень приспичило, то посоветую вам сначала скопировать файл.htaccess с сервера и уж потом его там изменять, а то кто знает что вы там сделаете с вашими "кривыми" ручками:-).

Обычные страницы ошибок

В первую очередь, я поведаю вам о том, что можно изменить страницу ошибок. Т.е. те страницы, которые выдаются при ошибке (например 404 Файл не найден) можно настроить под дизайн. Я думаю у каждого веб-дизайнера в глазах загорелась мысль, о том что можно под свой дизайн, на своём фоне с присутствием вашего меню и лого, написать 404 большими красными буквами, чтобы каждый увидел это. Ну вот и приступим. Система такова: ErrorDocument номер ошибки /file.html Допустим мы хотим изменить 404-ую ошибку, тогда пишем следующее: ErrorDocument 404 /notfound.html где notfound.html - файл, который лежит в корневом каталоге и изменен нами! Если же файлы с ошибками лежат в папке /errorpages то пишем в файле.htaccess ErrorDocument 404 /errorpages/404.html.

Вот список самых частых ошибок:

401 - Authorization Required
400 - Bad request
403 - Forbidden
500 - Internal Server Error
404 - Wrong page или File Not Found

Создаем файлы со всеми этими ошибками, и пишем это в файл.htaccess.

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