Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как сделать htaccess файл


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

Вы здесь: Главная - PHP - PHP Основы - Как создать файл .htaccess

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

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

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

Всё, файл .htaccess создан. Далее можно его вновь открывать в любом текстовом редакторе и редактировать.

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

AddDefaultCharset UTF-8

Если это windows-1251:

AddDefaultCharset CP1251

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

  • Создано 18.01.2013 11:20:36
  • Михаил Русаков
Предыдущая статья Следующая статья

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:
    <a href="https://myrusakov.ru" target="_blank"><img src="https://myrusakov.ru/images/button.gif" alt="Как создать свой сайт" /></a>

    Она выглядит вот так:

  2. Текстовая ссылка:
    <a href="https://myrusakov.ru" target="_blank">Как создать свой сайт</a>

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):
    [URL="https://myrusakov.ru"]Как создать свой сайт[/URL]

Как создать файл .htaccess и несколько полезных кодов

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

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

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

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

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

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

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

Как указать кодировку сайта в .htaccess

Если Вам нужно указать кодировку в .htaccess, то Вам нужно открыть его и добавить всего лишь одну строку кода, который укажет кодировку. Для UTF-8:


 AddDefaultCharset UTF-8
 

для windows-1251:


 AddDefaultCharset CP1251
 

Как запретить доступ к определенным файлам или самому .htaccess

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


 <Files .htaccess>
 order allow,deny
 deny from all
 </Files>
 

Как заблокировать доступ к файлам определенного типа в .htaccess


 <FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
 Order Allow,Deny
 Deny from all
 </FilesMatch>
 

Как запретить просмотр директорий в .htaccess

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


 Options -Indexes
 

Если, Вам наоборот нужно открыть доступ к просмотру директорий, то поможет следующий код.


 Options All +Indexes
 

Как ускорить время загрузки сайта за счет сжатия файлов

Можно сжимать любые файлы, например, для сжатия HTML-файлов нужно добавить вот такую вот строку


 AddOutputFilterByType DEFLATE text/html
 

Если же это например текстовый файл, то надо так:


 AddOutputFilterByType DEFLATE text/plain
 

Для JavaScript:


 AddOutputFilterByType DEFLATE application/javascript
 

Есть код, который одновременно сожмет все javaScript, HTML и CSS файлы при помощи GZIP. Это вот такой вот код:


 <IfModule mod_gzip.c>
 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.* 
 </IfModule>
 

Как запретить вставлять изображения со сторонних ресурсов

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


 RewriteEngine on
 RewriteCond %{HTTP_REFERER} !^$
 RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
 RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
 

yourdomain.com - замените на домен Вашего сайта, чтобы скрипт работал.

Как заблокировать посетителей, которые пришли из определенного сайта.

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


 <IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_REFERER} site1.com [NC,OR]
 RewriteCond %{HTTP_REFERER} site2.com [NC,OR]
 RewriteRule .* - [F]
 </ifModule>
 

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

Кэширование файлов в .htaccess

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


 <FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
 Header set Cache-Control "max-age=2592000"
 </FilesMatch>
 

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


 <FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$">
 Header unset Cache-Control
 </FilesMatch>
 

Как изменить главную страницу в .htaccess

Стандартной страницей загрузки являются страницы - index.html, index.php, index.htm.


 DirectoryIndex newpage.html
 

Просто укажите новую страницу, вместо newpage.html.

Как заблокировать доступ к сайту по IP адресу

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

Как убрать index.php, index.html из URL адреса

Этот способ тоже описан в статье - Как убрать index.php, index.html из URL адреса

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

На этом все, спасибо за внимание. 🙂

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

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

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

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

Если в ОС семейства Windows попытаться создать файл .htaccess, результатом будет ошибка "Следует ввести имя файла".

Ошибка при создании файла .htaccess

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

Если вы используете специальный текстовый редактор, скорее всего вы можете создать файл .htaccess через него. Инструкция для пользователей Notepad++:

  • Открываем Notepad++
  • Нажимаем Файл -> Сохранить как
  • В новом окне выбираем тип файла Все типы (англ. All types), вводим .htaccess и сохраняем.

Пример файла .htaccess

Одни из самых популярных директив - кодировка сайта и настройки контроля над ошибками. Укажем их в файле .htaccess:

# Charset AddDefaultCharset UTF-8 # Errors php_value error_reporting -1 php_flag display_startup_errors on php_flag display_errors on

В данном примере мы указали следующие директивы:

  • AddDefaultCharset - указывает кодировку сайта.
  • error_reporting - указывает, ошибки каких уровней отлавливать (для отображения на сайте и в логах), а каких игнорировать (-1 означает отлавливать все ошибки).
  • display_errors и display_startup_errors - отображать ли ошибки в браузере (on - отображать, off - не отображать). Обычно включается на время разработки и выключается на работающем сайте.

Теперь файл .htaccess можно поместить в корневую папку с сайтом.

что это такое, как правильно создать и настроить

Файл .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

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

  1. Откройте Блокнот, ничего в нем не пишите.
  2. Выберите пункт «Файл» и нажмите «Сохранить как».
  3. Появится окно, где напротив пункта «Тип файла» выберите «All types» или «Все файлы».
  4. В строке «Имя файла» введите .htaccess и кликните на «Сохранить».

Далее перепроверьте, создан ли документ правильно. Обязательно посмотрите, не сохранили ли вы его как .htaccess.txt. Затем загрузите файл в корневую папку сервера, и если не отобразится ошибка 500, значит, вы все сделали правильно.

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

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

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

Редирект

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

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

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

Redirect [status] URL_LOCAL URL_REDIRECT

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

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

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

  1. 301 – страница перенесена навсегда.
  2. 302 – страница перенесена на время.
  3. 303 – смотрите другую страницу.
  4. 410 – страница удалена.

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

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

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

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

RewriteEngine On # включает работу RewriteCond %{HTTP_HOST} ^www.название_вашего_сайта\ru$ [NC] #условия для начала перенаправления RewriteRule ^( *)$ http://название_вашего_сайта_/$1 [R=301,L] #правило преобразования
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}/ [R=301,L]

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

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

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

RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.yoursite.ru\.ru$ [NC] RewriteRule ^(.*)$ http://www.your-site.ru/$1 [R=301,L]

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

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. Запретные команды для поискового бота

В .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:

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

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

<Files "passwd.html"> Order Deny,Allow Deny from all Allow from 12.345.678.90 </Files>

12.345.678.90 – пример IP-адреса (здесь нужно указать нужный вам IP).

Заключение

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

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

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

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

.htaccess — наш герой


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

Зачем нам .htaccess ?


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

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

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

А ещё…


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

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

Options All -ExecCGI -Indexes -Includes +FollowSymLinks

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

Опция -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 (куда же без него)
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^black-web RewriteRule (.*) http://www.black-web.ru/$1 [R=301,L] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://www.black-web.ru/ [R=301,L] </IfModule>

Обязательно не забыть про условие . Не окажись у хостера данного модуля и ваш сайт станет выдавать 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. Ещё настройки…

<IfModule mod_setenvif.c> SetEnv TZ Europe/Moscow </IfModule> ServerSignature Off AddDefaultCharset UTF-8

Первая строчка устанавливает часовой пояс. Например в Apache 2.22.22 был баг связанный с этой опцией. Функции времени в php не работали, пока не установишь часовой пояс.

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

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

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

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

<ifModule mod_php.c> php_value upload_max_filesize 32M php_value post_max_size 10M php_value default_charset utf-8 php_value max_execution_time 200 </ifModule>

Первая строчка разрешить загружать файлы размером до 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 следующие строки:

<ifModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript </ifModule>

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

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

<IfModule mod_gzip.c> 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.* </IfModule>

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

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

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

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

<ifModule mod_headers.c> #кэшировать html и htm файлы на один день <FilesMatch "\.(html|htm)$"> Header set Cache-Control "max-age=43200" </FilesMatch> #кэшировать css, javascript и текстовые файлы на одну неделю <FilesMatch "\.(js|css|txt)$"> Header set Cache-Control "max-age=604800" </FilesMatch> #кэшировать флэш и изображения на месяц <FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$"> Header set Cache-Control "max-age=2592000" </FilesMatch> #отключить кэширование <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$"> Header unset Cache-Control </FilesMatch> </IfModule>

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

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

<ifModule mod_expires.c> 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" </ifModule>

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 <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^black-web RewriteRule (.*) http://www.black-web.ru/$1 [R=301,L] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://www.black-web.ru/ [R=301,L] </IfModule> DirectoryIndex index.php <IfModule mod_setenvif.c> SetEnv TZ Europe/Moscow </IfModule> ServerSignature Off #AddDefaultCharset UTF-8 <ifModule mod_php.c> php_value upload_max_filesize 32M php_value post_max_size 10M php_value default_charset utf-8 php_value max_execution_time 200 </ifModule> 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 <ifModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript </ifModule> <IfModule mod_gzip.c> 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.* </IfModule> <ifModule mod_headers.c> #кэшировать html и htm файлы на один день <FilesMatch "\.(html|htm)$"> Header set Cache-Control "max-age=43200" </FilesMatch> #кэшировать css, javascript и текстовые файлы на одну неделю <FilesMatch "\.(js|css|txt)$"> Header set Cache-Control "max-age=604800" </FilesMatch> #кэшировать флэш и изображения на месяц <FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$"> Header set Cache-Control "max-age=2592000" </FilesMatch> #отключить кэширование <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$"> Header unset Cache-Control </FilesMatch> </IfModule> <ifModule mod_expires.c> 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" </ifModule> # 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. Сужу по своему опыту — на практике знания усваиваются лучше чем в теории.

Разные интересные примеры
# SECURE ____________________ <IfModule mod_ssl.c> SSLOptions +StrictRequire SSLRequireSSL SSLRequire %{HTTP_HOST} eq "black-web.ru" </IfModule> <IfModule mod_rewrite.c> RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </IfModule> # HOTLINKING ________________ <IfModule mod_rewrite.c> RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://([ -a-z0-9] \.)?black-web\.ru [NC] RewriteRule \.(gif|jpe?g|png)$ - [F,NC,L] </IfModule> # REDIRICT __________________ Redirect 301 /index.html /index.php <IfModule mod_rewrite.c> RewriteRule ^news/([^/\.]+)/?$ news.php?news=$1 [L] RewriteRule ^(.*\.((js)|(css)))$ plugin/GzipFile.php?file=$1 RewriteRule \.css$ plugin/GzipFile.php?file=$1 RewriteRule \.js$ plugin/GzipFile.php?file=$1 </IfModule> RedirectMatch 301 /blog(.*) http://www.black-web.ru/$1

P.S.

… Для тех у кого всё получилось, идём на www.webpagetest.org мерять красоту до и после.
Andrey_Zentavr
Кому надо берите полностью готовый .htaccess здесь
Данный файл показал самую высокую производительность на тестах.
Также там куча всего закомментировано о чем я не упомянул в статье и что может пригодиться в тех или иных случаях.

Зачем нужен файл htaccess, где он находится и за что отвечает

Доброго времени суток, дорогие читатели!

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

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

Что такое htaccess

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

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

Htaccess – это обычный конфигурационный файл, где содержатся настройки определенного типа. Обычно там размещают информацию о редиректах (например, переадресацию на защищенный протокол https), параметры сервера и компонентов, которые на нем установлены и т. д.

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

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

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

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

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

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

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

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

  1. Настраивать редиректы (переадресацию) на различные адреса вашего ресурса. Пользователь будет заходить по одному какому-то адресу, его будет переадресовывать на другой. Полезно, когда у документа (статьи или страницы) сменился URL, и вы не хотите, чтобы пользователи получали ошибку 404 при обращении на этот адрес.
  2. Настраивать редиректы на другие домены. Это может понадобиться в случае, если вы хотите перенести свой ресурс на другой домен, но при этом не хотите терять существующую аудиторию, которая попытается перейти на сайт по старому домену. Через htaccess вы сможете настроить простую переадресацию, которая будет переводить пользователей на нужный вам новый домен.
  3. Сделать переадресацию на домен с www или без него. По умолчанию многие проекты доступны по нескольким вариантам одного домена. Например, условный site.ru можно открыть как просто , так и . Это порождает лишние дубли и очень негативно влияет на поисковое продвижение. С помощью конфига вы сможете настроить переадресацию на основной вариант.
  4. Сделать редирект на https. После установки SSL-сертификата ваш ресурс будет доступен уже по четырем разным вариантам адреса. К предыдущему пункту прибавится еще версия с https-протоколом. Htaccess поможет вам сделать основной только одну версию. То есть сделать редирект сразу же на нужный вариант адреса с нужным протоколом.
  5. Настроить кэширование файлов вашего ресурса. Этот шаг необходим для ускорения работы вашего проекта. С помощью данного конфигурационного конфига вы сможете сделать кэширование. Тогда вся информация с сайта будет сжиматься до оптимальных размеров и подаваться пользователям в упрощенном виде. Им не придется всегда заново нагружать ваш сервер и скачивать все файлы. Кэширование очень важно для SEO, потому что оно помогает ускорить ресурс. Также кэширование помогает снизить нагрузку на хостинг.
  6. Сделать ЧПУ-ссылки. Обычно все файлы ресурса имеют ссылки, которые не так-то просто запомнить. Это могут быть какие-то последовательности из символов или что-то другое. С помощью htaccess вы сможете сделать понятные человеку варианты ссылок, которые будут состоять из слов на латинице. В WordPress для создания ЧПУ вам достаточно просто активировать нужный параметр в настройках, в самописных же сайтах придется делать это самостоятельно через этот самый файлик.
  7. Блокировать доступ с определенных IP-адресов. Очень часто на сайты нападают разного рода злоумышленники, которые спамят флудом, пытаются вывести этим хостинг проекта из строя или просто активируют большое количество ботов, которые отправляют различный рандомный текст в комментарии к записям или в формы сбора заявок. Используя определенные команды, которые будут заноситься в этот конфиг, вы сможете блокировать IP-адреса спамеров, и они больше не смогут заходить на сайт. Также вы сможете настроить закрытый ресурс, который будет доступен только определенным IP-адресам. То есть это такие своеобразные белые и черные списки.
  8. Регулировать поведение поисковых роботов на сайте. Обычно параметры для поисковиков настраиваются через robots.txt, но в htaccess вы также можете указать несколько настроек, которые помогут вам управлять поведением роботов поисковых систем.
  9. Настраивать доступ к определенным файлам и папкам. Вы можете устанавливать пароли на определенные директории и файлы. Это поможет вам установить контроль посещаемости и делать документы видимыми только для ограниченного количества людей. Подобные функции помогают вам защитить свой проект от атак хакеров и повысить уровень безопасности.
  10. Устанавливать более тонкие настройки сервера. С помощью конфигурации вы сможете устанавливать настройки сервера. Например, если у сервера есть какие-то лимиты на загрузку конфигов, с помощью htaccess вы сможете изменить их. Также вы сможете менять и другие параметры сервера, используя для этого различные команды.

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

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

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

Помещаем документ в корень, и он действует на весь проект (все папки и их содержимое), помещаем куда-то внутрь, и будет работать только с теми папками и файлами, которые расположены с ним на одном уровне или ниже.

Где расположен htaccess

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

Htaccess будет расположен прямо в корне (/public_html, если это виртуальный хостинг). Его можно будет открыть с помощью любого текстового редактора.

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

Также вы можете просто скачать его и открыть при помощи любого редактора на вашем компьютере.

Но если вы хотите изменить этот файл на WordPress, то вам совсем не обязательно заходить на хостинг и открывать его там. Достаточно будет просто зайти в настройки плагина Yoast SEO, перейти во вкладку “Инструменты”. Содержимое конфига будет доступно прямо там, в специальном окне. Вы сможете легко его менять, и все изменения будут автоматически заноситься в настоящий конфиг.

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

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

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

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

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

Создаем htaccess на компьютере

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

Кликните правой кнопкой мыши на свободном месте рабочего стола, после чего выберите “Создать” – “Текстовый документ”. На рабочем столе появится файлик с названием “Новый текстовой документ”. Откройте его, но ничего не вводите.

Далее, просто наведите курсор в левый верхний угол, найдите там пункты меню “Файл” – “Сохранить как”. Откроется окно сохранения, где будет необходимо выбрать папку для сохранения (можно сохранить прямо на рабочий стол), ввести название и выбрать тип файла.

В поле “Имя файла” вводим “.htaccess”. В раскрывающемся меню “Тип файла” выбираем “Все файлы”. Далее, жмем на кнопку сохранить. Все, документ создан.

Обратите внимание, что он не должен иметь расширение. То есть не должно быть, например, “.htaccess.txt”.

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

Примеры команд

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

Переадресация

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

Redirect 301 /старый_адрес.html http://www.site.ru/новый_адрес.html

Вы можете менять значения, которые выделены жирным. Например, вместо 301-го редиректа вы можете использовать другой. Всего есть 4 различных значения.

  1. 301 – документ перемещен навсегда.
  2. 302 – документ перемещен временно.
  3. 303 – смотрите другие документы ресурса.
  4. 410 – документ был безвозвратно удален.

Mod_rewrite – настройка сложных редиректов

Это специальный модуль, который позволяет настраивать переадресацию на какой-то конкретный протокол или домен определенного вида (с www или без него, к примеру). Данный модуль работает только на серверах Apache, поэтому далеко не каждый хостинг будет это поддерживать.

  • Основное зеркало.

RewriteEngine On

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

RewriteRule ^( *)$ _/$1 [R=301,L]

Вместо site.ru должен быть ваш домен. Если вы введете это в конфигурационный документ, ваш сайт будет перенаправлять пользователей с www на обычную версию ресурса. Допустим, человек попытается перейти на www.site.ru/stat1, его сразу же перекинет на site.ru/stat1. Вот так это и работает.

  • Редирект на https.

Если вы установили SSL-сертификат и хотите, чтобы все страницы проекта открывались через защищенное соединение, вам необходимо просто прописать эти строчки.

RewriteEngine On

RewriteCond %(HTTPS) !on

RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URL)

Менять в этом коде ничего не нужно, все будет работать именно в таком виде.

  • Редирект на другой домен.

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

RewriteEngine on

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

RewriteRule ^(.*)$ /$1 [R=301,L]

Вы можете изменить название сайта, добавив или убрав определенные варианты. Например, вы можете настроить редирект сразу на сайт с https. Также вы можете изменить домен на вариант без www.

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

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

RewriteEngine on

RewriteCond %{USER_AGENT} Googlebot

RewriteRule .* — [F]

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

Заключение

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

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

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

Как создать файл .htaccess и для чего его можно использовать? - Справочный центр Hostway

  • База знаний
    • Домашняя страница справочного центра
    • Начало работы
    • Регистрация домена и DNS
    • Электронная почта и сотрудничество
    • Хостинг веб-сайтов
    • Хостинг VPS
    • Управляемый выделенный и облачный хостинг
    • Сервисные уведомления
  • Продукты
    • Управляемый выделенный хостинг
    • Управляемый облачный хостинг
      • Публичное облако AWS
      • Общедоступное облако Azure
      • Виртуальное частное облако
      • Частное облако VMWare
      • Гибридное облако
    • Управляемая инфраструктура
      • Управляемые балансировщики нагрузки
      • Управляемый SSL и шифрование
      • Управляемый межсетевой экран
      • Управляемый мониторинг
      • Управляемое хранилище
      • Управляемое резервное копирование
      • Соответствие
      • (PCI и HIPAA)
        • Соответствие HIPAA
        • Соответствие PCI
    • Управляемые базы данных
      • Microsoft SQL Server
    • Управляемый Magento
    • Хостинг веб-сайтов
    • Электронная почта и сотрудничество
      • Управляемый Office 365
      • Размещенный Microsoft Exchange
      • Хостинг Open-Xchange
    • Регистрация домена
  • Управляемые услуги
    • Уровни управляемых услуг
    • Оценка облака и миграции
  • Решения
    • Миграция в облако
    • Электронная торговля
    • Здравоохранение
    • Критически важные приложения SaaS
    • Управляемые решения безопасности
  • ресурса
    • Ресурсный центр
      • Примеры использования
      • Инфографика
      • Официальные документы
      • Брошюры
      • Вебинары
      • Видео
    • Пресс-релизы
    • Новости
    • События
    • Блог
  • Партнеры
    • Партнерские программы
    • Реферальные партнеры и реселлеры
    • Партнеры по здравоохранению
    • Глобальные партнеры
  • Поддержка
    • Центр поддержки клиентов
.Перенаправление

- Как сделать файл .htaccess

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

Файл Apache .htaccess - Примеры и распространенное использование

× Содержание

× Поделиться этим учебником

Куда бы вы хотели этим поделиться?

  • Twitter
  • Reddit
  • Хакерские новости
  • Facebook

Поделиться ссылкой

Ссылка на руководство

× Поделиться этим учебником

Куда бы вы хотели этим поделиться?

  • Twitter
  • Reddit
.Учебное пособие по

Apache HTTP Server: файлы .htaccess

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

См. Также

Вам следует избегать использования файлов .htaccess полностью, если у вас есть доступ к Файл конфигурации главного сервера httpd. Использование файлов .htaccess замедляет работу вашего http-сервера Apache. Любую директиву, которую вы можете включить в файл .htaccess , лучше установить в блоке Directory , так как это будет иметь тот же эффект с лучшей производительностью.

.htaccess файлов (или «файлы распределенной конфигурации») предоставляют возможность вносить изменения в конфигурацию для отдельных каталогов. А файл, содержащий одну или несколько директив конфигурации, помещается в конкретный каталог документов, и директивы применяются к этому каталог и все его подкаталоги.

Примечание:

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

 AccessFileName ".config" 

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

Например, если вы посмотрите документацию для AddDefaultCharset директиве, вы обнаружите, что это разрешено в .htaccess файлы. (См. Строку Context в сводке директивы.) Строка Override гласит FileInfo . Таким образом, у вас должно быть не менее AllowOverride FileInfo , чтобы эта директива была почитается в файлах .htaccess .

Если вы не уверены, разрешена ли конкретная директива в .htaccess , посмотрите документацию для этого директиву и проверьте строку контекста на наличие ".htaccess".

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

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

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

Есть две основные причины избегать использования .htaccess файлов.

Первое из них - производительность. Когда AllowOverride настроен на использование .htaccess файлов, httpd будет поищите в каждом каталоге файлов .htaccess . Таким образом, разрешение файлов .htaccess приводит к снижению производительности, независимо от того, используете ли вы их на самом деле! Так же .htaccess файл загружается каждый раз, когда документ просил.

Также обратите внимание, что httpd должен искать файлов .htaccess во всех каталогах более высокого уровня, чтобы иметь полный набор директивы, которые он должен применять.(См. Раздел о том, как директивы.) Таким образом, если файл запрашивается из каталог / www / htdocs / example , httpd должен искать следующие файлы:

/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess

Итак, для каждого доступа к файлу из этого каталога есть 4 дополнительные обращения к файловой системе, даже если ни один из этих файлов не подарок. (Обратите внимание, что это будет только в том случае, если .htaccess файлов были включены для /, что обычно бывает не так.)

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

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

Обратите внимание, что это полностью эквивалентно помещению .htaccess файл в каталоге / www / htdocs / example , содержащий директиву, и поместить ту же директиву в раздел каталога на вашем основном сервере конфигурация:

.htaccess в / www / htdocs / пример :

Содержимое файла .htaccess в / www / htdocs / example

 AddType text / example ".exm" 

Раздел из вашего httpd.conf файл

 <Каталог "/ www / htdocs / example"> AddType текст / пример ".exm"  

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

Использование файлов .htaccess можно полностью отключить установив AllowOverride директива к нет :

 AllowOverride Нет 

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

Пример:

В каталоге / www / htdocs / example1 у нас есть .htaccess , содержащий следующее:

 Опции + ExecCGI 

(Примечание: у вас должны быть действующие " AllowOverride Options " чтобы разрешить использование директивы « Опции » в .htaccess файла.)

В каталоге / www / htdocs / example1 / example2 имеем файл .htaccess , содержащий:

 Опции Включает 

Из-за этого второй файл .htaccess в каталоге / www / htdocs / example1 / example2 , выполнение CGI не выполняется разрешено, так как действует только Options Includes , что полностью отменяет любые предыдущие настройки, которые могли быть место.

Слияние .htaccess с основным файлы конфигурации

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

 <Каталог "/ www / htdocs"> AllowOverride All  <Местоположение "/"> Параметры + Включает NoExec -ExecCGI  

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

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

.htaccess содержимое файла:

 AuthType Basic AuthName «Требуется пароль» AuthUserFile "/www/passwords/password.file" AuthGroupFile "/www/passwords/group.file" Требовать администраторов группы 

Обратите внимание, что AllowOverride AuthConfig должен действовать. чтобы эти директивы имели какой-либо эффект.

См. Руководство по аутентификации для более полное обсуждение аутентификации и авторизации.

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

 Опции + Включает AddType text / html shtml Обработанный сервером файл shtml 
AddHandler

Обратите внимание, что Параметры AllowOverride и AllowOverride FileInfo должны действовать, чтобы эти директивы имели эффект.(. +) \. jpg "" $ 1.png "

В .htaccess в каталоге документов ведущая косая черта удаляется из значения, предоставленного в RewriteRule , а в images Подкаталог , / images / удален из Это. Таким образом, ваше регулярное выражение должно опускать эту часть как Что ж.

Обратитесь к документации mod_rewrite для дополнительные сведения об использовании mod_rewrite .

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

 Опции + ExecCGI AddHandler cgi-скрипт cgi pl 

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

 Опции + ExecCGI SetHandler cgi-скрипт 

Обратите внимание, что Параметры AllowOverride и AllowOverride FileInfo должны действовать, чтобы эти директивы имели эффект.

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

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

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

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

[Пт, 17 сен, 18:43:16 2010] [предупреждение] [клиент 192.168.200.51] /var/www/html/.htaccess: DirectoryIndex здесь не допускается

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

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

[Сб, 9 августа, 16:22:34 2008] [предупреждение] [клиент 192.168.200.51] /var/www/html/.htaccess: RewriteCond: неверные разделители флагов

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

.Учебное пособие по

Apache HTTP Server: файлы .htaccess

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

Вам следует избегать использования файлов .htaccess полностью, если у вас есть доступ к Файл конфигурации главного сервера httpd. Использование файлов .htaccess замедляет работу вашего http-сервера Apache. Любую директиву, которую вы можете включить в файл .htaccess , лучше установить в блоке Directory , так как это будет иметь тот же эффект с лучшей производительностью.

.htaccess файлов (или «файлы распределенной конфигурации») предоставляют возможность вносить изменения в конфигурацию для отдельных каталогов. А файл, содержащий одну или несколько директив конфигурации, помещается в конкретный каталог документов, и директивы применяются к этому каталог и все его подкаталоги.

Примечание:

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

 AccessFileName ".config" 

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

Например, если вы посмотрите документацию для AddDefaultCharset директиве, вы обнаружите, что это разрешено в .htaccess файлы. (См. Строку Context в сводке директивы.) Строка Override гласит FileInfo . Таким образом, у вас должно быть не менее AllowOverride FileInfo , чтобы эта директива была почитается в файлах .htaccess .

Если вы не уверены, разрешена ли конкретная директива в .htaccess , посмотрите документацию для этого директиву и проверьте строку контекста на наличие ".htaccess".

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

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

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

Есть две основные причины избегать использования .htaccess файлов.

Первое из них - производительность. Когда AllowOverride настроен на использование .htaccess файлов, httpd будет поищите в каждом каталоге файлов .htaccess . Таким образом, разрешение файлов .htaccess приводит к снижению производительности, независимо от того, используете ли вы их на самом деле! Так же .htaccess файл загружается каждый раз, когда документ просил.

Также обратите внимание, что httpd должен искать файлов .htaccess во всех каталогах более высокого уровня, чтобы иметь полный набор директивы, которые он должен применять.(См. Раздел о том, как директивы.) Таким образом, если файл запрашивается из каталог / www / htdocs / example , httpd должен искать следующие файлы:

/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess

Итак, для каждого доступа к файлу из этого каталога есть 4 дополнительные обращения к файловой системе, даже если ни один из этих файлов не подарок. (Обратите внимание, что это будет только в том случае, если .htaccess файлов были включены для /, что обычно бывает не так.)

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

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

Обратите внимание, что это полностью эквивалентно помещению .htaccess файл в каталоге / www / htdocs / example , содержащий директиву, и поместить ту же директиву в раздел каталога на вашем основном сервере конфигурация:

.htaccess в / www / htdocs / пример :

Содержимое файла .htaccess в / www / htdocs / example

 AddType text / example ".exm" 

Раздел из вашего httpd.conf файл

  AddType текст / пример ".exm"  

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

Использование файлов .htaccess можно полностью отключить установив AllowOverride директива к нет :

 AllowOverride Нет 

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

Пример:

В каталоге / www / htdocs / example1 у нас есть .htaccess , содержащий следующее:

 Опции + ExecCGI 

(Примечание: у вас должны быть действующие " AllowOverride Options " чтобы разрешить использование директивы « Опции » в .htaccess файла.)

В каталоге / www / htdocs / example1 / example2 имеем файл .htaccess , содержащий:

 Опции Включает 

Из-за этого второй файл .htaccess в каталоге / www / htdocs / example1 / example2 , выполнение CGI не выполняется разрешено, так как действует только Options Includes , что полностью отменяет любые предыдущие настройки, которые могли быть место.

Слияние .htaccess с основным файлы конфигурации

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

 <Каталог "/ www / htdocs"> AllowOverride All  <Местоположение "/"> Параметры + Включает NoExec -ExecCGI  

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

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

.htaccess содержимое файла:

 AuthType Basic AuthName «Требуется пароль» AuthUserFile "/www/passwords/password.file" AuthGroupFile "/www/passwords/group.file" Требовать администраторов группы 

Обратите внимание, что AllowOverride AuthConfig должен действовать. чтобы эти директивы имели какой-либо эффект.

См. Руководство по аутентификации для более полное обсуждение аутентификации и авторизации.

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

 Опции + Включает AddType text / html "shtml" Обработанный сервером файл shtml 
AddHandler

Обратите внимание, что Параметры AllowOverride и AllowOverride FileInfo должны действовать, чтобы эти директивы имели эффект.(. +) \. jpg "" $ 1.png "

В .htaccess в каталоге документов ведущая косая черта удаляется из значения, предоставленного в RewriteRule , а в images Подкаталог , / images / удален из Это. Таким образом, ваше регулярное выражение должно опускать эту часть как Что ж.

Обратитесь к документации mod_rewrite для дополнительные сведения об использовании mod_rewrite .

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

 Опции + ExecCGI AddHandler cgi-скрипт "cgi" "pl" 

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

 Опции + ExecCGI SetHandler cgi-скрипт 

Обратите внимание, что Параметры AllowOverride и AllowOverride FileInfo должны действовать, чтобы эти директивы имели эффект.

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

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

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

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

[Пт, 17 сен, 18:43:16 2010] [предупреждение] [клиент 192.168.200.51] /var/www/html/.htaccess: DirectoryIndex здесь не допускается

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

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

[Сб, 9 августа, 16:22:34 2008] [предупреждение] [клиент 192.168.200.51] /var/www/html/.htaccess: RewriteCond: неверные разделители флагов

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

.

.htaccess Учебное пособие | Поддержка Bluehost

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


Создание файла .htaccess

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

На вашем компьютере

Windows: Используя Блокнот, сохраните файл как.htaccess

Mac OS X: Используя TextEdit, сохраните файл как «.htaccess».
Примечание : Если вы сохраните файл как .htaccess, он будет скрыт, и вы не сможете увидеть его в Finder.

Используя предпочитаемый FTP-клиент, загрузите файл на сервер. Файл .htaccess должен находиться в папке, в которой расположен ваш сайт, обычно в папке public_html.

На сервере

Bluerock
  1. Войдите в панель управления Bluehost.
  2. Щелкните вкладку Advanced в левом меню.
  3. В разделе File щелкните значок File Manager .
  4. Найдите кнопку Settings , расположенную в правом верхнем углу экрана.
  5. Отсюда щелкните всплывающее окно Preferences , затем установите флажок для Показать скрытые файлы (dotfiles) .
  6. По завершении нажмите кнопку Сохранить .
  7. Щелкните значок Файл , чтобы создать новый файл, и назовите его .htaccess.
Наследие
  1. Войдите в панель управления Bluehost.
  2. Щелкните значок File Manager , расположенный в разделе файлов.
  3. В настройках всплывающего окна файлового менеджера выберите папку, которую вы хотите открыть, чаще всего это Web Root (public_html / www).
  4. В настройках убедитесь, что Показать скрытые файлы отмечен .

    Примечание : Если вы не видите это всплывающее окно, вам нужно будет щелкнуть ссылку «Сбросить все настройки интерфейса» внизу страницы cPanel.

  5. Нажмите кнопку Отправить .
    Примечание : Если вы уже находитесь в диспетчере файлов, вы можете добавить & showhidden = 1 в конец URL-адреса.
  6. Щелкните значок New File , чтобы создать новый файл и назовите его .htaccess

Редактирование файла.Файл htaccess

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

Есть много способов отредактировать файл htaccess.

  1. Отредактируйте файл на своем компьютере и загрузите его на сервер через FTP.
  2. Используйте режим Edit Mode программы FTP, который позволяет удаленно редактировать файл.
  3. Используйте SSH и текстовый редактор для редактирования файла.
  4. Используйте диспетчер файлов в cPanel для редактирования файла.

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

Как редактировать .htaccess в файловом менеджере cPanel

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

Чтобы отредактировать файл .htaccess, сначала необходимо открыть файловый менеджер .

Bluerock
  1. Войдите в панель управления Bluehost.
  2. Щелкните вкладку Advanced в левом меню.
  3. В разделе File щелкните значок File Manager .
  4. Найдите кнопку Settings , расположенную в правом верхнем углу экрана.
  5. Отсюда щелкните всплывающее окно Preferences , затем установите флажок для Показать скрытые файлы (dotfiles) .
  6. Прокрутите, чтобы найти файл .htaccess в списке.
  7. Щелкните файл правой кнопкой мыши, затем выберите в меню Изменить .
  8. Может появиться диалоговое окно с вопросом о кодировании; просто нажмите кнопку Edit , чтобы продолжить. Редактор откроется в новом окне.
  9. При необходимости отредактируйте файл, затем нажмите кнопку Сохранить изменения .
  10. Проверьте свой сайт, чтобы убедиться, что он дает желаемый эффект. Если нет, исправьте ошибку или вернитесь к предыдущей версии, пока ваш сайт снова не заработает.
Наследие
  1. Войдите в панель управления Bluehost.
  2. Щелкните значок File Manager , расположенный в разделе файлов.
  3. В настройках всплывающего окна файлового менеджера выберите папку, которую вы хотите открыть, чаще всего это Web Root (public_html / www).
  4. В настройках убедитесь, что Показать скрытые файлы отмечен .

    Примечание : Если вы не видите это всплывающее окно, вам нужно будет щелкнуть ссылку «Сбросить все настройки интерфейса» внизу страницы cPanel.

  5. Нажмите кнопку Отправить .
  6. Диспетчер файлов откроется в новой вкладке или в новом окне.
  7. Найдите файл .htaccess в списке файлов. Вам может потребоваться прокрутка, чтобы найти этот файл.
  8. Щелкните файл правой кнопкой мыши и выберите в меню Code Edit . (Или вы можете щелкнуть значок файла .htaccess, а затем щелкнуть значок «Редактор кода» вверху страницы.)
  9. Может появиться диалоговое окно с запросом о кодировании.Для продолжения просто нажмите кнопку Edit .
    Редактор откроется в новом окне.
  10. При необходимости отредактируйте файл.
  11. По завершении нажмите кнопку Сохранить изменения в верхнем правом углу.
    Изменения сохранены. Проверьте свой сайт, чтобы убедиться, что он дает желаемый эффект. Если нет, исправьте ошибку или вернитесь к предыдущей версии, пока ваш сайт снова не заработает.
  12. По завершении вы можете нажать Закрыть , чтобы закрыть окно.

Альтернативные индексные файлы

Возможно, вам не всегда нужно использовать index.htm или index.html в качестве индексного файла для каталога; например, если вы используете файлы PHP на своем сайте, вы можете захотеть, чтобы index.php был индексным файлом для каталога. Однако вы не ограничены «индексными» файлами. Используя htaccess, вы можете установить foofoo.blah в качестве индексного файла, если хотите!

Альтернативные индексные файлы вводятся в список. Сервер будет работать слева направо, проверяя, существует ли каждый файл; если ни один из них не существует, он отобразит список каталогов (если, конечно, вы не отключили это).

  DirectoryIndex index.php index.php3 messagebrd.pl index.html index.htm  

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

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

  Ошибка: номер ошибки документа / файл.html  

Например, если бы у меня был файл notfound.html в корневом каталоге моего сайта и я хотел бы использовать его для ошибки 404, я бы использовал:

  ErrorDocument 404 /notfound.html  
Если страница с ошибкой находится не в корневом каталоге вашего сайта, вы можете ввести путь к файлу:
  ErrorDocument 500 /errorpages/500.html  
Вот некоторые из наиболее распространенных ошибок:
 401 - Требуется авторизация ошибка 400, неверный запрос 403 - Запрещено внутренняя ошибка сервера 500 404 - Неправильная страница 

Остановить отображение индекса каталога

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

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

  # отключить просмотр каталогов Параметры ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch -Indexes # включить просмотр каталогов Параметры Все + Индексы  

Запретить / разрешить определенные IP-адреса

Чтобы разрешить доступ к вашему сайту только людям с определенными IP-адресами (например, разрешить доступ только людям, использующим определенную сеть, в определенный каталог), или вы можете захотеть запретить другие IP-адреса (например, не допуская нарушителей к вашим доски объявлений).Это будет работать, только если вы знаете IP-адреса, которые хотите заблокировать.

Имейте в виду, что большинство интернет-провайдеров используют динамические IP-адреса, поэтому это не всегда лучший способ ограничить / предоставить доступ.

Блокировать IP-адрес

  #Deny List заказ разрешить, запретить deny from 123.123.123.123 # указать конкретный адрес deny from 123.123.123.123/30 # указать диапазон подсети deny from 123.123. * # указать подстановочный знак IP-адреса разрешить со всех  

Разрешить только определенные IP-адреса

  # Список разрешенных заказ отклонить, разрешить разрешить от 123.123.123.123 # указать конкретный адрес разрешить от 123.123.123.123/30 # указать диапазон подсети allow from 123.123. * # указать подстановочный знак IP-адреса отрицать от всех  
Примечание : Это все еще позволит сценариям использовать файлы в каталоге.

В cPanel есть инструмент, который может создавать за вас редиректы. См. Как создать перенаправление.

Перенаправить из определенного файла в новый

Пример:

  Перенаправить / перенаправить_from.html http://www.newsite.com/folder/redirect_to.html  

В приведенном выше примере файл с именем redirect_example.html в корневом каталоге перенаправляется на URL http://www.newsite.com/folder/redirect_example.html.
Если старый файл находился в подкаталоге, вы можете использовать:

 /subdirectory/redirect_from.html 

WildCard Redirect / Перенаправление из одной папки в новую папку

  Redirect / redirect_from http://www.newsite.com/redirect_to  

Теперь любой запрос к вашему сайту в / старом каталоге будет перенаправлен на новый сайт с добавлением дополнительной информации в URL-адресе, например, если кто-то набрал:

 http: // www.example.com/redirect_from/images/image.gif 

Они будут перенаправлены на:

 http://www.newsite.com/redirect_to/images/image.gif 
Перенаправление
(перезапись URL) с помощью Joomla

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

 # По соображениям безопасности, Option followsymlinks не может быть отменен. #Options + FollowSymLinks Параметры + SymLinksIfOwnerMatch 
Mod_Rewrite

Mod Rewrite позволяет вам изменить URL-адрес, который все видят при посещении вашего домена или определенного адреса.Просто добавьте код в свой файл .htaccess (обычно тот, который находится внутри public_html).

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

ПРИМЕРЫ

  # Указать домашнюю страницу по умолчанию (индексная страница) DirectoryIndex home.html   # Разрешить доступ к вашему сайту только указанным IP-адресам отрицать от всех позволяют с 64.95.219.140 позволяют с 210.23.45.67   # Перенаправить все страницы со старого домена.(. *) $ https://www.example.com/$1 [R = 301, L]   # Блокировать трафик от нескольких рефереров RewriteEngine на Параметры + FollowSymlinks RewriteCond% {HTTP_REFERER} badsite.com [NC, OR] RewriteCond% {HTTP_REFERER} badforum.com [NC, OR] RewriteCond% {HTTP_REFERER} badsearchengine.com [NC] RewriteRule. * - [F]   # Не разрешать называть эти типы файлов RewriteEngine на RewriteRule. *. (Jpg | jpeg | gif | png | bmp | exe | swf) $ - [F, NC]  

Руководства по кодированию dot-htaccess:

Одно из многих применений htaccess - надежная защита паролей на веб-сайтах.
Примечание : Если вы хотите использовать инструмент cPanel для защиты папок паролем, см. Нашу статью: Защита паролем папки на вашем веб-сайте

Файл .htaccess

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

  AuthName "Название раздела" AuthType Basic AuthUserFile / главная / имя пользователя /.htpasswds Требовать действительного пользователя  

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

Необходимо изменить /home/username/.htpasswds, чтобы отразить полный путь сервера к файлу .htpasswds (подробнее об этом позже). Если вы не знаете полный путь к вашему веб-пространству, проверьте свою cPanel Bluehost. Посмотрите на левый столбец статистики на cPanel.

Файл .htpasswds

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

Ввод имен пользователей и паролей

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

  логин: пароль  

Пароль - это зашифрованный формат пароля. На сайте KxS есть хорошая служба имени пользователя и пароля, которая позволит вам ввести имя пользователя и пароль. Это покажет вывод в правильном формате.

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

Доступ к сайту

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

 http: // имя пользователя: [email protected]/directory/ 

Исправить ExecCGI

Откройте файл.htaccess, расположенный в каталоге public_html / addondomain / в диспетчере файлов, и введите эту строку:

 Опции ExecCGI 

Нажмите кнопку Сохранить внизу экрана, и все готово!

Перезапустите Apache

Вам не нужно перезапускать Apache, а затем, после этого, вам нужно «жестко обновить» вашу веб-страницу, чтобы увидеть изменения. Просмотрите свой сайт и перейдите на страницу, которая должна быть затронута. Затем нажмите Ctrl + F5, чтобы все обновить.(Некоторые компьютеры требуют, чтобы F Lock был включен, прежде чем вы сможете использовать F5.) Теперь вы должны увидеть, как ваш новый код .htaccess вступил в силу.

Кроме того, вы можете очистить кеш браузера, закрыть его, перезапустить браузер и снова попробовать открыть веб-страницу.

Пользователи Safari: Safari потребует от вас использовать горячую клавишу cmd + R для Safari 3 и ниже. Safari 4 и выше потребует, чтобы вы, удерживая Shift, щелкнули значок обновления рядом с адресной строкой. .

Смотрите также