Htaccess что это


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

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

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

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


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

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

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

  • открыть или закрыть доступ к каталогам без индексного файла;
  • запаролить директорию — ограничить доступ по логину — паролю (htpasswd);
  • закрыть внешние ссылки (с других сайтов) на архивы;
  • запретить доступ к файлам определенного формата, или доступ к сайту в определенный промежуток времени;
  • запретить — открыть доступ с определенных (айпи) IP адресов;
  • сменить или добавить еще несколько новых названий индексного файла;
  • включить по мере необходимости проверку в страницах определенного формата — типа на наличии SSI, Perl, PHP и др. включений — директив;
  • сделать редиректы (Redirect) — пересылку пользователя с одних адресов на другие — перенаправления пользователя на другую страницу;

  • скрыть структуру каталогов сайта отображающеюся в адресной сроке браузера, или возможно сделать её более простой и наглядной для конечного пользователя (mod_Rewrite);
  • управлять роботами — ботами поисковых систем на сайте;
  • безболезненно и незаметно перенести сайт на новый домен — смена домена;
  • использовать свои собственные общие страницы ошибок, например, как-то наиболее часто используемые —
    * 401 Authorization Required — Требуется авторизация
    * 403 Forbidden — Доступ запрещен
    * 404 Not Found — Документ не найден
    * 500 Internal Server Error — Ошибка в работе сервера
  • при необходимости сменить кодировку страниц отправляемых веб сервером посетителям;
  • запретить или нужным образом настроить кэширование веб сервера;
  • правильно с минимальными потерями сменить имя домен сайта;
  • обучить веб сервер понимать дополнительные нужные Вам форматы (типы) файлов.

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

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


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

Изучайте синтаксис, основные правила и рекомендации для конфигурационного файла и да «ПРИБУДЕТ» вам «СИЛА» и УДАЧА во всем.

Карта сайта htaccess

Объем информации: 10676 bytes

www.htaccess.net.ru

Что такое файл .htaccess?

Говоря в общем, файл .htaccess – это серверный документ, который используется для настройки уровня доступа к файлам и папкам, правил переписи URL или сообщений об ошибке. Наиболее часто этот файл ассоциируют с отображением страницы ошибки 404 (когда пользователь пытается перейти на страницу сайта, которой не существует). Кроме этого, файл .htaccess часто используется для оптимизации сайта под поисковые системы. Применение редиректа 301 укажет поисковым системам путь до нового расположения контента или URL – это, в принципе, и есть главная ответственность на плечах этого файла.

Htaccess что этоФайл .htaccess также тесно связан с современной структурой постоянных ссылок, которые применяются в CMS вроде WordPress. Еще до того, как редиректы URL обрела широкую известность, страницы и записи располагались по адресу вроде http://web-profy.com/blog?p=1355

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

  • Таким образом мы получили ссылки в формате http://web-profy.com/chto-takoe-htaccess.htm

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

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

Есть ли у меня файл .htaccess и могу ли я создать его?

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


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

Htaccess что это

 

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


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

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

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

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


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

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

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

2. Защита файлов и директорий с помощью .htaccess и .htpasswd


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

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

ValidUser: neprostoyparol

Эта строка текста должна быть в файле .htpasswd, и этот файл нужно сразу же загрузить на сервер. Если вы хотите добавить еще пользователей и паролей, у которых будет доступ к файлу или директории, то их можно указать в новой строке документа .htpasswd.


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

AuthUserFile /server/path/of/.htpasswd  AuthType Basic  AuthName "Заголовок защищенной страницы"    <Files "login.php">  Require ValidUser  </Files>

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

3. Вывод страницы ошибки 404 для отсутствующих страниц и папок

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


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

ErrorDocument 404 /path/to/the/404-error-page.htm

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

Важная часть дизайна сайта и работы

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

Алексей Повловский

web-profy.com

Что такое файл .htaccess

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

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

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

Теперь перечислим тонкости работы с htaccess:

Для чего нужен и как настроить файл .htaccess

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

Редирект между страницами или сайтами

Помните, чтобы редирект мог работать, перед строками, о которых мы еще скажем, прописывают:

  • 301 Редирект с одной страницы на другую (либо сайт).

При работе с расширением .htaccess для редиректа в файл нужно внести такие строки:

  • 301 Редирект с www-сайта на сайт без www.

Допустим, речь идет о перенаправлении с http://www.site.com на http://site.com. Отметим, что это очень полезный ход, и он нередко применяется в СЕО. Для этого есть код:

  • Перенаправление с http://site.com на http://www.site.com.

Эта операция также в принципе возможна, но мы не рекомендуем ее применять. В этом случае:

  • Перенаправление людей с прежнего сайта на новый.

Просто пропишите:

  • Добавление .html в конце URL.

В файле .htaccess это делается для html сайта, чтобы при вводе site.com/page либо site.com/page/ пользователь перенаправлялся на site.com/page.html. Для этого прописываем в .htaccess:

  • Удаление .html в конце URL.

Чтобы осуществить обратное перенаправление с site.com/page.html на site.com/page:

  • Удаление значка слэш в конце URL.

Допустим, изначально адрес выглядел как site.com/page/, а теперь он представлен таким образом: site.com/page, тогда нам нужно:

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

Нам необходимо, чтобы со всех страниц определенного раздела site.com/razdel-1/razdel-2/page посетитель сайта попадал на страницы другого раздела site.com/razdel-1/page, прописываем:

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

Здесь нужно корректно перенаправлять гостей с каждой страницы старого сайта на ту страницу нового, которая ее замещает. В качестве примера возьмем oldsite.com/page и newsite.com/page. Тогда в файле .htaccess для сайта прописывается:

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

Итак, пользователь самостоятельно задает адрес, либо кликает на ссылку. Таким образом, он отправляет соответствующий запрос на сервер хостера. И получает ответ с кодом. При бесперебойной работе придут коды 1-399, а при ошибке цифры будут такими: 400-599. Представим простую ситуацию: сервер вашего сайта перегружен, либо происходит перезагрузка. На мониторе, если человек пытается зайти на сайт, отобразится, например, 500 Internal Server Error. Рядовому пользователю эти слова не понятны, он резонно решит, что сайт уже устарел и закрыт. Эффект от этого один – человек к вам уже не вернется.

Из этого есть выход. Стандартную страницу ошибки (пугающую людей) замените на вашу отдельную страницу. Там будет содержаться информация: сайт не действует на данный момент, но вскоре продолжит работать, и на него стоит заглянуть еще раз. Интересный пример – сайт КиноПоиск. При перегрузке серверов, в соответствии с тематикой, здесь отображается сообщение «Матрица перезагружается…»  и изображение из культового фильма.

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

Здесь можно уведомить гостя, что он пытался воспользоваться несуществующей ссылкой. Хорошим ходом будет предложение не закрывать вкладку, а поискать сведения на этом сайте. Теперь перейдем к главному: чтобы заменить страницу ошибки своей, создайте отдельную страницу (допустим http://yoursite.com/404.html), снабдите файл .htaccess необходимым кодом. Это его варианты:

Уточним нюанс: чтобы заменить страницу ошибки 403, нужно прописать сообщение:

Настройка безопасности сайта в файле .htaccess

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

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

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

В примере yoursite.com – это адрес вашего сайта.

А так будет выглядеть путь к картинке, созданной вами: http://yoursite.com/images/stop_stealing.gif. На подобных изображениях оставляют надпись, вроде: «не крадите картинки с чужих сайтов».

  • Блокировка доступа к сайту для пользователя по IP.

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

  • Блокировка доступа к сайту для всех IP, кроме проверенных.

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

  • Запрет отображения содержимого определенной папки.

Здесь прописываем:

  • Запрет через htaccess доступа к конкретному файлу.

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

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

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

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

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

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

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

Кроме того, данный параметр должен указываться в мета-теге каждой страницы – так браузер узнает о кодировке сайта. Выглядит это так:

Но что если мета-тег не указан? В этом случае есть возможность применить файл .htaccess для передачи данной информации браузеру. Здесь понадобится код:

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

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

В дальнейшем вы можете отказаться от функции, введя код:

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

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

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

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

или

или

  • Улучшение кэширования сайта на сервере.

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

или

Поясним, что необходимо установить время, в течение которого файлы будут храниться на компьютере пользователя в блоке «access plus …». Когда этот период завершится, файлы будут единоразово загружены с сервера при запросе к сайту. Рекомендуем выбирать промежуток от 7 дней до месяца, правда, в ряде случаев он может доходить до года.

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

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

Настройка PHP-параметров при помощи файла .htaccess

Все привыкли, что настройку PHP производят в файле php.ini, однако ряд настроек может быть задан в .htaccess. Здесь вам понадобятся два выражения: php_value для логических значений включитьвыключить), php_flag для числовых значений. Такие выражения пишутся следующим образом:

причем ЗНАЧЕНИЕ1 может выражаться как on, off, 1 либо 0 (1 и on – означает включить, а 0 и off – выключить);

на месте ЗНАЧЕНИЕ2 указывается любое числовое / буквенное значение, соответствующее конкретной директиве;

директива1 применяется исключительно при работе с php_flag, может быть представлена:

директива2 (используется только с php_value) может иметь такие значения:

Как включить файл htaccess и проверить его работу

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

Данная директива размещается исключительно в блоке <Directory>. Отметим, что также по умолчанию принимается значение «All», что, в том числе, сказывается на работе файлов .htaccess. Правда, есть и другой вариант: при значении «None» они окажутся выключены. Но нельзя не отметить, что существуют и многие другие варианты значений, накладывающие определенные ограничения на конфигурацию. Вот их примеры:

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

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

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

Способ 1

Для данного легкого метода заставим Apache с помощью директив файла htaccess искать «indexgood.html» до «index.html». Если .htaccess поддерживается, попадая в папку через браузер, Apache загрузит .htaccess, и на экране появится страница «indexgood.html» с поздравлением! В противном случае Apache, не обращая внимания на .htaccess, будет искать файл «index.html».

Директива DirectoryIndex получает список, в котором через запятую перечисляются вероятные файлы. Если перед Apache ставятся URL директории, значит дается не прямой путь к файлу (не http://www.example.com и не http://www.example.com/index.html), поэтому он прибегнет к списку для обнаружения заданного файла. Движение по перечню идет слева направо. Если первый файл найден, он будет загружен, пользователь его увидит.

Способ 2

Обычный неверный синтаксис в вашем файле .htaccess. пригоден для проверки – сервер не сможет с ним справиться!

«AHHHHHHH» – это не директива Apache, то есть приведет к ошибке, как только тот попытается осуществить просмотр файла htaccess. О чем это нам скажет? Если перед вами появится страница с «Internal Server Error» – поддержка работает. Так как данная ошибка означает, что сервер искал .htaccess файл. Если же вы увидите index.html – она отключена.

Как настроить файл htaccess для wordpress

Обсудим шаги, необходимые при настройке файла htaccess для wordpress.

  1. Прописываем запрет просмотра содержимого каталога (в качестве примера используем каталог vverx), в котором нет файла index.txt.

Если мы сохраним стандартный файл, перед всеми людьми, набирающими в браузере https://sales-generator.ru/ /vverx/, отобразится содержимое каталога, его файлов (листинг).

Это нам не нужно, поэтому после строки #  BEGIN WordPress прописываем:

Благодаря директиве Options, удается установить ряд однотипных параметров. Так директива может применяться с параметром Indexes. В подобном случае знак влияет на то, сможет ли посетитель увидеть список файлов. Так при «—» не увидит, если выбранный каталог не содержит файл index.txt или аналогичный ему. А при «+» увидит. Отметим, если требуется защита от хакерских атак, Options отлично подойдет.

  1. Указываем метод кодирования

WP по умолчанию пользуется кодировкой UTF-8. Мы должны в принудительном порядке установить кодировку файла htaccess указанным ниже кодом. Только так удастся избежать лишних проблем:

Приятно, что вся работа состоит во внесении этой короткой строки.

  1. Сжатие контента

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

Apache предлагает два варианта сжатия. Специалисты выбирают модуль mod_deflate. Для этого в файл htaccess требуется ввести код:

  1. Кеширование

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

Для кеширования в файле htaccess применяются модули mod_expires, mod_headers. Каждый тип файлов требует отдельной установки промежутка времени кеширования либо его отсутствия. Рассмотрим пример кода в mod_headers файла htaccess, с которым нельзя хранить в кеше php-файлы.

Практически идеальный способ, подходит для любых файлов, кодируется так:

Какая может возникнуть ошибка в файле .htaccess

Что делать, если сервер выдает 500 ошибку после создания файла .htaccess – Internal Erorr-  Ошибка синтаксиса или файл записан не в том формате? В этом случае необходимо проверить синтаксис .htaccess.

Обратите внимание на файл error.log в корне своего сайта (если он там есть). Допустим, он выглядит так:

Тогда строка говорит об ошибке в файле w:/home/h15.ru/bospor/.htaccess (http://bospor.h15.ru/.htaccess): Директива CustomLog здесь не подходит.

Где можно скачать правильный файл .htaccess

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

Отметим, все остальное вносится в индивидуальном порядке.

Когда вам удалось скачать оптимальный файл .htaccess для WordPress, нужно открыть в Notepad++. Далее нажмите Cntr+F и замените в шести местах установленное по умолчанию zesite.ru на адрес своего сайта.

Но, допустим, данный оптимальный .htaccess для WordPress по определенному параметру вам не подходит, что делать? Откройте его на редактирование, чтобы удалить или внести недостающее правило.

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

sales-generator.ru

Что такое .htaccess?

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

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

Все управление конфигурациями сервера происходит с помощью директив. Директивы – это небольшие команды, имеющие вид «ключ-> значение».

Основные директивы для управления сервером прописаны в главном файле конфигурации – httpd.conf. Но доступ к нему для обычных пользователей закрыт, а .htaccess дает возможность изменять некоторые директивы из httpd.conf. Действие директив .htaccess распространяется на весь каталог, в котором он находится. Поэтому если разместить его в корневом каталоге, он будет распространяться на весь сайт.

.htaccess предоставляет пользователю следующие возможности:

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

Разберем каждый описанный параметр поподробнее.

Директивы простого перенаправления (редирект)

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

Redirect 301 /stariy_URL.html http://www.mysite.ru/noviy_URL.html

В общем виде данная директива выглядит так:

Redirect [status] URL_LOCAL URL_REDIRECT

[status] – это необязательное поле, может принимать значения:

  • 301 – страница перемещена навсегда;
  • 302 – страница перемещена временно;
  • 303 – смотрите другой документ;
  • 410 – страница убрана (удалена).

URL_LOCAL – локальная часть URL, с которой выполняется редирект;

URL_REDIRECT – адрес, на который переносится документ.

Директивы сложного перенаправления (mod_rewrite)

mod_rewrite – это модуль, входящий в состав Apache. Он включает в себя множество директив, позволяющих максимально полно управлять URL.

Рассмотрим наиболее популярные варианты применения директив сложного перенаправления:

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

Проще говоря, перенаправление с www на домен без www. Для этого в код добавляем:

RewriteEngine On #включает работу

RewriteCond %{HTTP_HOST} ^www.mysite.ru$ [NC] #условие для начала преобразования

RewriteRule ^(.*)$ http://mysite/$1 [R=301,L] #правило преобразования

2. Перенаправление на HTTPS

Сейчас Google настаивает на переходе на безопасное соединение. Чтобы перенаправлять всех пользователей с http на https, необходимо вписать в код:

RewriteEngine On

RewriteCond %{HTTPS} !on

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

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

Чтобы адрес не заканчивался просто именем каталога http://mysite.ru/news, необходимо добавить следующий код в файл .htaccess:

RewriteCond %{REQUEST_URI} /+[^.]+$

RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

Тогда в конце URL будет автоматически добавляться слеш: http://mysite.ru/news/

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

Если наш сайт перенесен с домена http://mysite.ru на http://my-site.ru , нужно указать это в .htaccess:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.mysite.ru$ [NC]

RewriteRule ^(.*)$ http://www.my-site.ru/$1 [R=301,L]

Если Вы продвигаетесь и в Google, и в Яндекс, при смене домена могут возникнуть проблемы, так как указания, прописанные в robots.txt для Яндекса, перекрываются 301-редиректом. Чтобы этого избежать, необходимо дополнить код в .htaccess:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]

RewriteRule ^([^/]+) $1 [L]

RewriteCond %{HTTP_HOST} ^mysite.ru

RewriteRule ^(.*)$ http://www.my-site.ru/$1 [R=301,L]

5. Запрет для робота

Если Вы не хотите, чтобы робот Google заходил на сайт, можно прописать жесткий запрет на посещение:

RewriteEngine on

RewriteCond %{USER_AGENT} Googlebot

RewriteRule .* — [F] # F – отправляет значение ошибки 403 – запрещено

Индексные страницы

При попадании пользователя на сайт, автоматически открывается индексный файл. Обычно он называется index.htm. Но .htaccess предоставляет возможность поменять индексную страницу:

DirectoryIndex name.html

Или указать несколько индексных страниц, при этом поиск будет осуществляться последовательно:

DirectoryIndex index.html index.pl index.php

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

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

ErrorDocument 404 /siteerror404.html

ErrorDocument 403 / siteerror 403.html

ErrorDocument 500 / siteerror 505.html

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

001.jpg

Определение кодировки

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

Чаще всего используются кодировки Windows-1251 – Кириллица и UTF-8 — двух байтовая кодировка. Для указания кодировки в файле .htaccess используется директива AddDefaultCharset:

AddDefaultCharset WINDOWS-1251

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

CharsetSourceEnc WINDOWS-1251

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

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

Deny from all

Также можно разрешить доступ с какого-либо IP, запретив просмотр всем остальным. Например, разрешаем просмотр файла data.html только с IP 31.222.143.00:

<Files "passwd.html">

Order Deny,Allow

Deny from all

Allow from 31.222.143.00

</Files>

Паролирование директорий

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

AuthName "Need password" #сообщение, показываемое при запросе пароля

AuthType Basic #тип аутентификации

AuthUserFile /passwords/.psd #имя файла с паролями для входа

Require valid-user #пользователи, которые могут получить доступ

Правила использования .htaccess

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

2. Путь к файлам указывается от корня: AuthUserFile /passwords/.psd

3. Домены прописываются с указанием протокола: Redirect 301 http://mysite.ru

4. Не забывайте про точку перед названием файла .htaccess

5. Комментарии прописываются с помощью символа #

Удачи с настройкой загадочного и многофункционального файла .htaccess!

www.seonews.ru

Зачем нужен файл «.htaccess».

Прежде чем начать, позвольте задать вам один вопрос: Какой самый популярный веб сервер?

За ответом далеко ходить не надо. Конечно же это — Apache. Этот бесплатный сервер установлен на подавляющем большинстве серверов в интернет.

Если ваш хостинг (как выбрать правильный хостинг смотри здесь и здесь ) расположен на UNIX/Linux системе, то с вероятностью 99% на нем установлен веб-сервер Apache. В Windows мире Apache распространен куда меньше из-за сильного конкурента Microsoft IIS. Однако, Apache прекрасно работает и на Windows машинах, постепенно завоевывая популярность. Не говоря уже о том, что для тестирования сайтов локально практически все веб мастера ставят себе Apache, а не «тяжеленный» IIS.

Итак, самый популярный веб-сервер — это Apache. Одним из самых весомых преимуществ этого сервера (помимо бесплатности, быстроты и небольшого потребления ресурсов) является гибкость настройки.

В Apache веб-мастер может сделать практически все, что угодно. Создать собственные страницы ошибок, запретить доступ к определенным файлам и папкам, изменить обработку файлов (например, обрабатывать .html файлы как скрипты написанные на Perl) и многое другое.

Все это (и многое другое) можно настроить через специальный конфигурационный файл Apache — «httpd.conf».

Правда, есть одно но: этот файл глобальный для всего сервера. А что делать если хочется установить специальные настройки только для конкретной директории?

Разумеется выход есть. В файле «httpd.conf» предусмотрено задание директив только для определенной директории. Но тут есть проблема. Даже две.

1. Для того, что бы изменения вступили в силу необходимо перезагрузить (рестартовать) Apache сервер.
2. Для любых (даже невинных) изменений, нужно редактировать критичный для всего сервера файл.

Создатели Apache, разумеется, не могли оставить данный вопрос без решения. И решили они его, на мой взгляд, очень просто и элегантно. Встречайте — герой нашей статьи — файл «.htaccess».

Итак, вместо того, что бы каждый раз редактировать файл httpd.conf, можно поступить следующим образом. В директории, для которой хотите сменить настройки Apache по-умолчанию, создайте файл «.htaccess». Далее в этом файле поместите все настройки, которые необходимо применять для текущей директории.

Просто, как и все гениальное. Директивы из файла «.htaccess» имеют более высокий приоритет, чем определенные в глобальном конфигурационном файле httpd.conf.

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

Возможно вы уже потираете руки, предчувствуя, как вы теперь порезвитесь. Не торопитесь с выводами. Для того, что бы файл «.htaccess» заработал, администраторы веб-сервера должны явно разрешить это в файле httpd.conf. Это достигается следующей директивой:

AllowOverride <список параметров, которые разрешено менять>

Таким образом, администратор вполне может запретить вам менять, если не все, то некоторые из параметров через «.htaccess». Разрешить менять любые параметры можно вот так:

AllowOverride All

Запретить изменения параметров через «.htaccess» совсем, можно вот так:

AllowOverride None

Учтите, что приведенные выше директивы должны быть в файле «httpd.conf».

Возможности файла «.htaccess»

1. Разрешить или запретить доступ к файлам с определенного IP адреса.

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

order allow,deny

deny from all

allow from <xxx.xxx.xxx.xxx>

allow from googlebot.com

Как видите, можно указать разрешение на просмотр ресурса либо по IP адресу, либо по доменному имени. В примере файлы разрешено просматривать роботу Google, который приходит с доменного имени googlebot.com.

Возможно указание нескольких IP адресов через пробел. Также возможно указывать лишь честь IP адреса. Например, для того, что бы разрешить видеть ваш сайт всем из локальной сети, нужно написать что-то подобное: allow from 192.168

То же самое можно проделать, если вы хотите запретить кому-либо просмотр вашего сайта. Результат должен выглядеть вот так:

order deny,allow

allow from all

deny from 192.168.35.111

deny from googlebot.com

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

Запрет и разрешение доступа к файлам в директории — это прекрасно. Однако, что если необходимо закрыть доступ не ко всем, а только в определенным файлам в директории? Для этого существует директива Files, которая позволяет задать файлы к которым будут применяться вложенные директивы. Рассмотрим несколько примеров:

<Files «test.php»>

  order allow,deny

  deny from all

</Files>

Данная конструкция запрещает доступ только к одному файлу: test.php

<Files «*.inc.php»>

  order allow,deny

  deny from all

</Files>

А этот пример запрещает доступ к файлам с окончанием: .inc.php

В выражениях можно использовать символы: * — для любой последовательности любых символов, ? — для одного любого символа.

Так же существует директива (FilesMatch), позволяющая задавать совпадение имен файлов через регулярное выражение. Если вы не знаете, что такое регулярное выражение, то можете посмотреть тут.

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

<FilesMatch «inc.php$»>

  order allow,deny

  deny from all

</FilesMatch>

Как видите, нам уже не нужен знак * в начале (регулярные выражения по-умолчанию ищут подстроку). Но теперь мы должны явно указать на то, что имя файла должно оканчиваться на inc.php. Знак $ и служит для указания на то, что inc.php должно быть в конце строки.

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

Хочу обратить ваше внимание на одни факт. Запрещение обращения к файлу/файлам осуществляется только для протокола http. Из скриптов, которые выполняются на сервере, вы всегда может читать все «закрытые» файлы.

3. Организация перенаправления (редиректа).

При помощи файла «.htaccess» можно организовать перенаправление пользователя, если это необходимо.

Предположим, что необходимо сделать так, чтобы при доступе к файлу www.site.ru/xxx.html пользователь перенаправлялся бы на страницу www.site.ru/yyy.html. Сделать это можно так:

Redirect 301 /xxx.html http://www.site.ru/yyy.html

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

Если необходимо перенаправить сразу список файлов, соответствующих некоторой маске, то используется вот такая конструкция:

RedirectMatch 301 /test(.*) http://www.site.ru/$1

Данная конструкция будет перенаправлять запросы к страницам, начинающимся со слова test на страницу без слова test вначале. Например, при доступе к http://www.site.ru/test_1.html пользователь будет перенаправлен на страницу http://www.site.ru/_1.html

$1 обозначает все то, что соответствует выражению в скобке (в нашем случае — это любое количество любых символов).

4. Задание кодировки страницы.

При помощи файла «.htaccess» можно задать кодировку страницы. После этого сервер сам будет сообщать браузеру о кодировке и вам не будет нужно вставлять в код страницы мета тег:

<meta http-equiv=»Content-Type» content=»text/html; charset=windows-1251″>

Задать кодировку можно так:

AddDefaultCharset windows-1251

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

5. Отображение скриптов в браузере.

Если вы хотите заставить сервер отобразить, например, perl или python скрипт в браузере вместо того, что бы выполнить его, то используйте следующую директиву:

RemoveHandler cgi-script .pl .py .php

Для скриптов на PHP данный метод будет работать, только если PHP установлен как cgi (о видах установки PHP я расскажу в одном из ближайших выпусков рассылки). Если же PHP установлен как модуль Apache (mod_php), то необходимо применить другой метод:

AddType text/html .php

6. Собственные страницы ошибок.

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

ErrorDocument <код_ошибки> /error.php

Здесь «код_ошибки» — код ошибки, в ответ на которую будет выдана данная страница. Полный список кодов ошибок вы можете посмотреть здесь. Например, для того что бы при обращении к несуществующей странице вашего сайта (ошибка 404) пользователь был переадресован на страницу 404.php нужно написать следующее:

ErrorDocument <404> /404.php

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

Выводы

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

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

  • Подписаться на рассылку «Web-дизайн и е-коммерция. Советы изнутри и снаружи»

www.interface.ru

Что же такое файл .htaccess

Файл .htaccess является децентрализованным файлом конфигурации сервера apache. Т.е. правила описанные данным файлом распространяются только на тот каталог и подкаталоги этого каталога  в котором находиться файл .htaccess. Таким образом, если мы поместим файл .htaccess в корне нашего сервера, то его правила будут распространяться на все каталоги сервера, кроме тех каталогов, в которых есть собственный файл .htaccess.
Т.к. файл .htaccess является служебным файлом, то он не доступен веб-пользователю из браузера. Хотя это можно переопределить основным конфигурационным файлом сервера httpd.conf.
Как я уже говорил выше, что .htaccess является локальным конфигурационным файлом веб сервера apache, то и синтаксис его повторяет синтаксис основного конфигурационного файла.

Возможности .htaccess

Давайте приведем список основных возможностей данного файла:

  1. открыть или закрыть доступ к каталогу или подкаталогам без индексного файла
  2. создать правила перезаписи URL
  3. редирект
  4. ограничение доступа по логину и паролю к каталогам и файлам
  5. открыть или закрыть доступ с определенных ip адресов
  6. управлять роботами — пауками поисковых систем на сайте
  7. менять кодировку страницы
  8. запретить или настроить кеширование страниц

и многое другое.

Целесообразность использования файла .htaccess

Данный файл имеет огромное количество достоинств, например, файл apache .htaccess перечитывается каждый раз при обращении к серверу, то внесенные изменения тут же вступают в силу. Но из этого преимущества вытекает и один существенный недостаток, т.к. данный файл обрабатывается при каждом обращении к серверу — он существенно снижает производительность веб-сервера apache. Поэтому не злоупотребляйте настройками .htaccess и что возможно сделать в общем конфигурационном файле делайте.
А теперь давайте рассмотрим для чего лучше всего использовать .htaccess:

  1. Перенаправление с кодом 301.

Очень часто приходиться перемещать контент и для того, чтобы не потерять позиции в поисковых системах делают перенаправление с кодом 301. Более подробно о кодах ответа веб сервера Вы можете прочитать в моей статье “HTTP коды — ответы http сервера” ( https://web-programming.com.ua/http-kody-otvety-http-servera/ )

  Redirect 301 http://domain.com/old-permalink-here/ http://domain.com/new-permalink-here/  

 

 

  1. Ограничение доступа к определенным каталогам и файлам.

Для этого используется еще один файл .htpasswd. Пример, ограничение доступа по логину и паролю ко всем zip-архивам:

  <FilesMatch ".zip$">  AuthName "Only valid users can download zip files."  AuthType Basic  AuthUserFile /home/www/mysite/pas/.htpasswd  Require valid-user  </ FilesMatch >  

А содержание файла .htpasswd, который находится в каталоге pas нашего сайт mysite:

  Root:RoU9yc57nPeKM  

где логин — Root, а пароль зашифрован — RoU9yc57nPeKM, что соответствует 12345

 

  1. Указание файла, который будет выводиться при ошибке 404, т.е. запрашиваемая

страница не найдена.

  ErrorDocument 404 http://mysite/error/404.html  

 

 

  1. Склейка двух доменов.

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

  RewriteEngine on  RewriteCond %{HTTP_HOST} ^wwwmysite [NC]  RewriteRule ^(.*)$ http://mysite/$1 [R=301,L]  

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

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

  <Directory "/">  Options Indexes FollowSymLinks Includes MultiViews  AllowOverride All  Order allow,deny  Allow from all  </Directory>  

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

 

  1. None — сервер игнорирует (не читает) файлы .htaccess
  2. Аll — позволяет с помощью .htaccess переопределить все глобальные установки доступа
  3. Filelnfo — разрешает переопределение опций управляющих типами документа (кодировка, язык, типы файлов)
  4. AuthConfig — переопределение опций разрешений
  5. Limit — разрешает переопределение опций доступа (allow, deny и order)
  6. Options — разрешает использовать директиву Options.

Перенаправление пользователя с определенным браузером:

  RewriteEngine on  RewriteCond %{HTTP_USER_AGENT} <название агента>  RewriteRule .* http://test.mysite/ [R]  

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

  RewriteEngine on  RewriteCond %{HTTP_USER_AGENT} <название агента>  RewriteCond %{REQUEST_URI} !^/test/  RewriteRule .* /test/ [R]  

вместо <название агента> вставляем название необходимого агента

Простой редирект

  Redirect 301 / http://mysite/  

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

  deny from all  

Запрещение доступа к определенному файлу, в примере запрещен файл test.php:

  <Files test.php>  deny from all  </Files>  

Запрещение ко всем файлам в директории для определенного ip (в примере для ip = 192.168.1.1):

  order deny,allow  allow from all  deny from 192.168.1.1  

Определение кодировки (варианты кодировки KOI8-R, UTF-8, Windows-1251):

  AddDefaultCharset windows-1251  

Закрываем доступ к сайту в рабочее время

  RewriteCond %{TIME_HOUR}%{TIME_MIN} >1000  RewriteCond %{TIME_HOUR}%{TIME_MIN} <1900  RewriteRule .* - [ F ]  

Заключение

И так мы видим, что .htaccess является мощным инструментом для конфигурации http сервера. Без .htaccess мы не сможем создать так, называемые ЧПУ. С помощью данного файла мы можем уведомить пользователей и поисковые системы о старых ссылках, что позволяет улучшить индексацию Вашего ресурса, также мы можем ограничить доступ к нашему ресурсу по времени или защитить файлы от скачивания, создать доступ по логину и паролю к определенным каталогам и файлам.

 

web-programming.com.ua


You May Also Like

About the Author: admind

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.