10+ вставок кода для htaccess





Содержание

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

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

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

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

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

Сейчас Google настаивает на переходе на безопасное соединение. Чтобы перенаправлять всех пользователей с http на https, необходимо вписать в код: RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

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

Чтобы адрес не заканчивался просто именем каталога http://mysite.ru/news, необходимо добавить следующий код в файл .htaccess: RewriteCond %{REQUEST_URI} /++$ RewriteRule ^(.+)$ %{REQUEST_URI}/ Тогда в конце URL будет автоматически добавляться слеш: http://mysite.ru/news/

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

RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.mysite\.ru$ RewriteRule ^(.*)$ http://www.my-site.ru/$1 Если Вы продвигаетесь и в Google, и в Яндекс, при смене домена могут возникнуть проблемы, так как указания, прописанные в robots.txt для Яндекса, перекрываются 301-редиректом. Чтобы этого избежать, необходимо дополнить код в .htaccess: RewriteEngine on RewriteCond %{REQUEST_FILENAME} robots.txt$ RewriteRule ^(+) $1 RewriteCond %{HTTP_HOST} ^mysite\.ru RewriteRule ^(.*)$ http://www.my-site.ru/$1

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

Если Вы не хотите, чтобы робот Google заходил на сайт, можно прописать жесткий запрет на посещение: RewriteEngine on RewriteCond %{USER_AGENT} Googlebot RewriteRule .* — # F – отправляет значение ошибки 403 – запрещено

Устранение неполадок при открытии файлов HTACCESS

Общие проблемы с открытием файлов HTACCESS

Microsoft Notepad не установлен

Дважды щелкнув по файлу HTACCESS вы можете увидеть системное диалоговое окно, в котором сообщается «Не удается открыть этот тип файла». В этом случае обычно это связано с тем, что на вашем компьютере не установлено Microsoft Notepad для %%os%%. Так как ваша операционная система не знает, что делать с этим файлом, вы не сможете открыть его дважды щелкнув на него. Совет: Если вам извстна другая программа, которая может открыть файл HTACCESS, вы можете попробовать открыть данный файл, выбрав это приложение из списка возможных программ.

Установлена неправильная версия Microsoft Notepad

В некоторых случаях у вас может быть более новая (или более старая) версия файла Apache HTACCESS File, не поддерживаемая установленной версией приложения. При отсутствии правильной версии ПО Microsoft Notepad (или любой из других программ, перечисленных выше), может потребоваться загрузить другую версию ПО или одного из других прикладных программных средств, перечисленных выше. Такая проблема чаще всего возникает при работе в более старой версии прикладного программного средства с файлом, созданным в более новой версии, который старая версия не может распознать. Совет: Иногда вы можете получить общее представление о версии файла HTACCESS, щелкнув правой кнопкой мыши на файл, а затем выбрав «Свойства» (Windows) или «Получить информацию» (Mac OSX). Резюме: В любом случае, большинство проблем, возникающих во время открытия файлов HTACCESS, связаны с отсутствием на вашем компьютере установленного правильного прикладного программного средства. Даже если на вашем компьютере уже установлено Microsoft Notepad или другое программное обеспечение, связанное с HTACCESS, вы все равно можете столкнуться с проблемами во время открытия файлов Apache HTACCESS File. Если проблемы открытия файлов HTACCESS до сих пор не устранены, возможно, причина кроется в других проблемах, не позволяющих открыть эти файлы. Такие проблемы включают (представлены в порядке от наиболее до наименее распространенных):

Почему стоит выбрать для сайта именно сервер Apache

Если вы зайдете на страницу любого хостинг-провайдера и посмотрите описание их сервера, то есть большая вероятность, что они используют Apache. Этот продукт работает со всеми известными веб-протоколами, поддерживает множество конфигураций, которые пользователь может настраивать. Кроме того, веб-сервера Apache весьма производительны и рациональны. Каждый пользователь может настроить доступное ему дисковое пространство сервера Apache на свой лад. Причем настроить можно не только сервер в целом, но и отдельные каталоги в нем. Во многом в этом помогает файл конфигураций htaccess, о котором и пойдет речь в данной статье. https://youtube.com/watch?v=eJ2ZPi3UCG0

Блокирование пользователей перенаправленных с определенного домена

Если вы не приветствуете пользователей определенного домена, то можно забанить на своем сайте. Например, если ваш сайт попал в список там, откуда не желателен трафик (например, порнографические сайты, неонацисткие ресурсы и прочее), то вы можете перекрыть его с помощью страницы 403 (запрет доступа). Нужно, чтобы был включен (обычно он включен). Добавляем код:
<IfModule mod_rewrite.c>
 
RewriteEngine on
 
RewriteCond %{HTTP_REFERER} bannedurl1.com 
 
RewriteCond %{HTTP_REFERER} bannedurl2.com 
 
RewriteRule .* - 
 
</ifModule>
Нужно заменить и на имена доменов из вашего черного списка. Флаг указывает на отсутствие чувствительности к регистру в имени домена, а флаг определяет действие — в нашем примере вывод страницы 403. Если нужно забанить несколько сайтов, используйте флаг для каждого домена, включая последний. Для запрета только одного домена можно использовать только флаг .

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

Это наиболее часто используемые директивы файла .htaccess. Если мы хотим перенаправить пользователя со старой страницы на новый URL, нам понадобится 301-редирект. Для этого в код файла .htaccess необходимо добавить: Redirect 301 /stariy_URL.html http://www.mysite.ru/noviy_URL.html В общем виде данная директива выглядит так: Redirect URL_LOCAL URL_REDIRECT – это необязательное поле, может принимать значения:
  • 301 – страница перемещена навсегда;
  • 302 – страница перемещена временно;
  • 303 – смотрите другой документ;
  • 410 – страница убрана (удалена).
URL_LOCAL – локальная часть URL, с которой выполняется редирект; URL_REDIRECT – адрес, на который переносится документ.

Разрешение/запрет

разрешить доступ с определенного ip. order allow deny deny from all allow from 000.000.000.000 запретить доступ с определенного ip. order allow deny allow from all deny from 000.000.000.000 запретить просмотр всем. deny from all разрешить просмотр всем. allow from all Запретить доступ к определенному файлу. <Files config.php> deny from all </Files> Запретить доступ к файлам с определенным расширением. <Files «*.conf»> deny from all </Files> Запретить доступ к файлам нескольких расширений. <Files «\.(inc|conf|cfg)$»> deny from all </Files> Тонкая настройка доступа. AuthName «Input password» AuthType Basic AuthUserFile «/pub/home/login/htdocs/clousearea/.htpasswd» <Files *.*> require valid-user </Files> AuthName «Input password» AuthType Basic AuthUserFile «/pub/home/login/htdocs/clousearea/.htpasswd» <Files *.*> require user юзер1 юзер2 юзер3 </Files *.*>

MIME типы файлов

Чтобы понять, какие документы надо показывать как html, какие как графику, а к каким надо выдать меню, позволяющее сохранить файл на диск, браузер использует MIME типы. MIME типы описывается набором символов, отражающим тип используемых данных. Например, файлам с расширением .html соответствует тип text/html. В ответ на пришедший запрос html-файла сервер возвращает заголовок Content-type: text/html. Браузер, получив такой заголовок, знает, что документ с типом данных text/html это обычная веб-страница на языке HTML. Пример распространенных MIME типов данных
 Описание данных Расширение файлов MIME type
Картинки gif gif image/gif
Картинки jpeg jpeg jpg jpe image/jpeg
VRML-файлы wrl vrml model/vrml
HTML-документ html htm text/html
Обычный текст asc txt text/plain
Архив ZIP zip application/zip
Файл MS Word doc application/msword
Файл MS Excel xls application/vnd.ms-excel
Файл MS Power Point ppt application/vnd.ms-powerpoint
Файл Adobe Acrobat pdf application/pdf
Flash-документ swf application/x-shockwave-flash

Добавление MIME типов файлов

Периодически появляются новые MIME типы, которые не известны веб серверам, соответственно, в этом случае браузеры не смогут понять как обрабатывать указанный объект. Чтобы исправить эту проблему новые MIME типы надо добавить в настройках сервера или в файле .htaccess. Так же это пригодиться в случае если надо переопределить базовый MIME тип для уже известного расширения. Файлы заканчивающиеся на / будут открываться как html:

Ограничение доступа к определённым ресурсам

С помощью файлов .htaccess можно включить защиту любого файла или каталога паролем — для всех пользователей или в зависимости от домена или IP адреса. Это, помимо всего, и есть один из основных методов их применения. Чтобы предотвратить доступ ко всему каталогу, просто создаём файл .htaccess, содержащий следующий код: AuthName «Username and password required» AuthUserFile /path/to/.htpasswd Require valid-user AuthType Basic
1 2 3 4 AuthName»Username and password required» AuthUserFilepathto.htpasswd Require valid-user AuthType Basic
Затем этот файл нужно поместить в каталог, требующий защиты. Указатель AuthName определяет сообщение, которое следует отобразить в диалоговом окне «имя пользователя/пароль», AuthUserFile должен послужить путём к файлу .htpasswd. Указатель Require уточняет, что только авторизовавшиеся пользователи могут получить доступ к защищённому файлу, в то время как AuthType установлен на Basic. Чтобы защитить некий файл, можно обернуть вышеупомянутый код в указатель files, определяющий защищённый файл: JavaScript. Быстрый старт Изучите основы JavaScript на практическом примере по созданию веб-приложения Узнать подробнее <Files «protectedfile.html»> AuthName «Username and password required» AuthUserFile /path/to/.htpasswd Require valid-user AuthType Basic </Files>
1 2 3 4 5 6 <Files»protectedfile.html»> AuthName»Username and password required» AuthUserFilepathto.htpasswd Require valid-user AuthType Basic <Files>
Нам также нужен файл .htpasswd для тех типов аутентификации, где содержится список разделённых двоеточием имён пользователей и зашифрованных паролей, требуемых для получения доступа к защищённому ресурсу(ам). Этот файл нужно сохранить в каталог, недоступный из сети. Существует ряд сервисов, которые можно использовать для автоматического генерирования этих файлов, так как пароли должны сохраняться в зашифрованном виде.

Резюме файла HTACCESS

У нас есть пять существующие программные обеспечения, связанные с файлами HTACCESS (как правило это программное обеспечение от Microsoft Corporation, известное как Microsoft Notepad), и их можно отнести к категории основных типов файлов один. Традиционно эти файлы имеют формат Apache HTACCESS File . Расширение файла HTACCESS указано преимущественно в категории Web Files. Файлы HTACCESS находятся на платформах мобильных устройств и настольных компьютеров, и их можно открыть в Windows, Mac и Linux. Рейтинг популярности основного типа файла HTACCESS составляет «Низкий», что означает, что эти файлы встречаются на стандартных настольных комьютерах или мобильных устройствах достаточно редко.

Защита файлов

Наверное, всем пользователям интернета попадались одинаковые статьи на различных сайтах. Очень часто бывает, что эти статьи попросту сворованы с других ресурсов. Поисковые системы стараются бороться с дублированными страницами, но выбор ими первоисточника не всегда оказывается верным. И это является серьезной проблемой для копирайтеров и веб-мастеров, так как на написание качественного контента, порой, уходит большое количество сил и времени, и очень неприятно обзавестись штрафными санкциями поисковиков за то, что кто-то скопировал контент с Вашего сайта. А зачастую, вместе с текстом воруют так же и изображения. Причем, многие воры, чтобы не перегружать свой сервер, не скачивают изображение с чужих сайтов, а просто ссылаются на файлы, находящиеся на сайте-первоисточнике. Вставка ссылки на файл, находящийся на другом сайте называется хотлинком (hotlink). Помимо ссылок на изображения этого могут быть так же ссылки и на другие файлы, например, доступные для скачивания. Такие хотлинки не только крайне неприятны для автора контента. Они так же перегружает сервер первоисточника. Защитить файлы от хотлинка при помощи файла .htaccess можно добавив в него две строчки: RewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?ваш_сайт.ru.*$ RewriteRule \.(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ — В скобочках через символ «|» указаны расширения файлов, доступ к которым будет запрещен всем, за исключением сервера и пользователей сайта ваш_сайт.ru Чтобы открыть доступ к файлам с этим расширением для пользователей поисковых систем необходимо исключить на них запрет так же, как на ваш_сайт.ru: RewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?ваш_сайт.ru RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yandex.ru RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yahoo. RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google. RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?bing. RewriteRule \.(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ —

.htaccess переадресация

Блокируем хотлинки с других сайтов

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

 Перенаправим RSS фиды WordPress на Feedburner

Я не думаю, что кто-то пользуется чем-то другим, отличным от Feedburner. Удобно для пользователя, удобно для владельца блога, статистика, опять же. Если вы еще не используете — крайне рекомендую. Код ниже перенаправит все ваши RSS потоки на ваш аккаунт, не забывайте только вставить нужный адрес. В этом примере идет перенаправление двух потоков: основного RSS и обновление комментариев, если посетитель подписан на обновления.

Изменим страницы ошибок

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

301 и 302 редирект или перенаправление

301 редирект или, так называемое постоянное перенаправление — говорит о том, что страница поменяла адрес или URL и перенаправляет на новую страницу. Если у вас на сайте была проиндексированная ПС страница, а вы поменяли ее адрес — в обязательном порядке сделайте 301 редирект на новую страницу. При 301 редиректе старая страница не индексируется, а вместо нее «подставляется» новая. Собственно, похожий пример внимательный читатель увидит выше, в случае перенаправления RSS. Да, технология та же. Бывает так, что сайт переезжает на новый домен, нужно сохранить структуру ссылок, а их могут быть сотни и тысячи, на каждую установить перенаправление нереально. Код ниже поможет разобраться с такой ситуацией: Есть интересная методика «скрытия» внешних ссылок путем 301 редиректа. Допустим, у вас есть «сквозная» ссылка в сайдбаре, которая ведет на ваш профиль в Google+, она внешняя, то есть ведет на внешний ресурс. Для SEO очень хорошо, когда таких ссылок как можно меньше. Можно спрятать их и сделать внутренними.

Технология производства внутренних ссылок из внешних:

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

 Склеиваем сайты с www и без него

Очень плохо, когда сайт доступен по двум адресам, ПС это очень не любят. Склеить это в один адрес поможет код ниже: В этом примере — главное зеркало это адрес без www. Если необходимо сделать наоборот — поменяйте www местами, сверху уберите, внизу добавьте.

Перенаправляем на главную

Перенаправление со страниц site.com/index.php и site.com/index.html на страницу site.com/. За код спасибо Василию Красноженову.

Что такое .htaccess?

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

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

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

5 последних уроков рубрики «Для сайта»

  • Сегодня мы хотели бы поделиться несколькими идеями касающегося эффекта блочного раскрытия, которую вы можете использовать для своих проектов.
  • Если вы хотите существенно повысить уровень безопасности вашего сайта на WordPress, то вам не избежать конфигурации файла .htaccess. Это позволит не только уберечься от целого ряда хакерских атак, но и организовать перенаправления, а также решить задачи связанные с кэшем.
  • Material Design — это набирающий обороты тренд от Google. В данной подборке собраны бесплатные темы для WordPress, выполненные в этом популярном стиле.
  • Эффекты на то и существуют чтобы впечатлять наших посетителей. В этой подборке собрано несколько десятков ресурсов, чьи создатели очень постарались впечатлить своих посетителей.
  • 45+ бесплатных материалов для веб дизайнеров за август 2016

Включаем сжатие

Другое предупреждение, которое можно получить в процессе проверки производительности, относится к включению сжатия, и это тоже можно исправить, просто обновив файл .htaccess: FilterDeclare COMPRESS FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css FilterProvider COMPRESS DEFLATE resp=Content-Type $text/javascript FilterChain COMPRESS FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
1 2 3 4 5 6 FilterDeclare   COMPRESS FilterProvider  COMPRESS  DEFLATE resp=Content-Type$texthtml FilterProvider  COMPRESS  DEFLATE resp=Content-Type$textcss FilterProvider  COMPRESS  DEFLATE resp=Content-Type$textjavascript FilterChain     COMPRESS FilterProtocol  COMPRESS  DEFLATE change=yes;byteranges=no
Эта схема сжатия работает на новых версиях Apache (2.1+), применяющих модуль mod_filter. Он использует алгоритм DEFLATE для сжатия контента в зависимости от его типа, и в этом случае мы определяем text/html, text/css и text/javascript (которые, скорее всего, окажутся видами файлов, помеченных в PageSpeed/Yslow). применить, используя параметр FilterDeclare – в данном случае COMPRESS. Затем перечисляем виды контента, для которого нам нужно использовать этот фильтр. Указатель FilterChain отдает команду серверу выстроить цепь фильтров на основе перечисленных нами параметров FilterProvider. Параметр FilterProtocol дает возможность определять опции, примененные к последовательности фильтров, всякий раз, когда она запускается; опции, которые нам следует использовать – это change=yes (контент может быть изменён фильтром (в данном случае – сжат) и byteranges=no (фильтр должен применяться только к определённым файлам). В более старых версиях Apache модуль mod_deflate используется для конфигурирования сжатия DEFLATE. В этом случае у нас меньше контроля над тем, как фильтруется контент, а указатели проще: SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/html text/css text/javascript
1 2 SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE texthtml textcss textjavascript
Здесь мы всего лишь устанавливаем алгоритм сжатия с помощью указателя SetOutputFilter, а затем определяем виды контента, который нужно сжать, используя параметр AddOutputFilterByType. Обычно веб-сервер применяет один из этих модулей в зависимости от того, какая версия Apache используется. Обычно вы знаете это заранее, но если создаётся универсальный файл .htaccess, который можно использовать на многих сайтах, или которым можно поделиться с другими людьми, и потому неизвестно, какие модули применить, то вы можете использовать оба вышеприведенных программных блока, обёрнутых в указатели IfModule module_name для того, чтобы использовался подходящий модуль и сервер не выдавал по 500 ошибок, если мы станем вдруг конфигурировать модуль, невнесенный в список. Вам нужно знать, что для хостов, работающих с большим количеством сайтов с единственного блока, сжатие отключают, поскольку при сжатии на сервере происходит небольшая потеря производительности CPU.

Директивы htaccess

Сегодня я хочу рассказать о .htaccess, файле, который позволяет настраивать веб-сервер Apache. Директивы, которые прописываются в этом файле напрямую влияют на выдачу, которую формирует веб-сервер. Инструмент этот достаточно мощный, использовать его нужно с умом. Статья эта написана больше полугода назад, теперь я снова к ней возвращаюсь, чтобы сделать самым подробным мануалом на эту тему. Сразу напомню, прежде чем что либо менять в .htaccess — сделайте копию вашего рабочего файла в укромное место. Мало ли, резервное копирование вообще хорошая вещь, не забывайте об этом. Я разделю статью на несколько подразделов — перенаправление страниц, запрет доступа к определенным файлам, ускорение сайта и прочие штуки, которые так или иначе могут пригодиться в работе ресурса. .htaccess файлы (или «распределенные конфигурационные файлы») позволяют задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т. д, без изменения главного конфигурационного файла. То есть, мы можем управлять поведением сервера в каждой, отдельно взятой папке, что очень удобно.

Переадресация и перезапись URL

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

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

Переадресация может быть совсем простой, как тут: Redirect 301 ^old\.html$ http://localhost/new.html
1 Redirect301^old\.html$http//localhost/new.html
Тут код статуса HTTP устанавливается на 301 (постоянно меняемый) и переадресовывает все запросы к old.html прямиком на new.html. Для совмещения URL’а с переадресацией мы применяем регулярное выражение, что даёт нам отличный контроль над применением только верного URL’а, но усложняет конфигурацию и управление ей. Требуется полный URL переадресовываемого ресурса.

Перезапись

Перезапись может быть простой, как здесь: RewriteEngine on RewriteRule ^old\.html$ new.html
1 2 RewriteEngine on RewriteRule^old\.html$new.html
В этом примере мы всего лишь делаем простую переадресацию от одного файла к другому, что тоже выполняется прямиком, без изменений, отображаемых в адресной строке. Первая команда, RewriteEngine on, просто гарантирует, что механизм перезаписи включён. Для обновления того, что отображено в адресной строке браузера посетителя, можно использовать метку R в конце RewriteRule, например: RewriteRule ^old\.html$ http://hostname/new.html
1 RewriteRule^old\.html$http//hostname/new.html
Метка r вызывает внешнее перенаправление, вот почему тут приведен полный URL (пример URL здесь) новой страницы. Также при использовании метки можно определить код состояния. Таким образом обновляется адресная строка браузера пользователя. Одним из возможных использований перезаписи URL, упомянутых мной в начале этого раздела – это сделать некрасивые URL’ы (содержащие информацию строкового запроса) более дружественными для посетителей и поисковых движков. Давайте рассмотрим это в действии: RewriteRule ^products/(+)/(+)/(+) product.php?cat=$1&amp;amp;brand=$2&amp;amp;prod=$3
1 RewriteRule^products(^+)(^+)(^+)product.php?cat=$1&amp;amp;brand=$2&amp;amp;prod=$3
Это правило позволит посетителям использовать такой URL, как products/turntables/technics/sl1210, и преобразовать его в product.php?cat=turntables&brand=technics&prod=sl1210. Круглые скобки между косыми чертами в вышеприведенном регулярном выражении – это собирающие группы – мы можем применять любую из них, как $1, $2 и $3 соответственно. Символьный класс + в круглых скобках означает совпадение любого символа один или более раз, кроме косой черты На практике перезапись URL может оказаться (и обычно так и есть) намного сложнее и добиться с её помощью можно гораздо большего. Перезапись URL лучше объясняется в отдельных учебниках, поэтому здесь мы её детально рассматривать не станем.

Ускоряем загрузку с помощью сжатия файлов

Вы можете сжимать любые файлы, а не только изображения. Например, для сжатия HTML файлов используйте следующий код:
AddOutputFilterByType DEFLATE text/html
А для сжатия текстовых:
AddOutputFilterByType DEFLATE text/plain
Можно также сжимать JavaScript файлы или определять несколько типов файлов для архивации:
AddOutputFilterByType DEFLATE application/javascript
 
AddOutputFilterByType DEFLATE application/rss+xml
В качестве альтернативы можно сжимать все HTML, JavaScript, 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>

Редиректы

Редирект на .html Пример, редирект с c site.ru/blog на site.ru/blog.html.
RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1.html 
RewriteRule ^(.*)/$ /$1.html
Редирект на страницу без слеша в конце адреса Пример, редирект с c site.ru/blog/ на site.ru/blog.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1
Редирект на страницу со слешем в конце адреса
RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteRule .* %1/
Редирект на страницу без index.php в адресе
RewriteRule ^index.php/(.*)$ http://mysite.ru/$1
Редирект на страницу без index.php в конце адреса
RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/
Редирект с www на без www
RewriteCond %{HTTP_HOST} ^www\.site\.ru$ 
RewriteRule ^(.*)$ http://site.ru/$1
Редирект без www на www
RewriteCond %{HTTP_HOST} ^site.ru$ 
RewriteRule ^(.*)$ http://www.site.ru/$1
Склейка доменов Пример, у вас несколько доменов, но посетитель должен переправляться на один.
RewriteCond %{HTTP_HOST} !^site.ru$
RewriteRule ^(.*) http://site.ru/$1
Редирект со старых статических url на новые Пример редирект со страницы http://site.com.ru/id=21.
RewriteCond %{QUERY_STRING} ^id=21$
RewriteRule ^/page.php$ http://site.ru/news.html
Защита от хотлинка Если вы хотите запретить вставку изображений с сайта по прямой ссылке. Вместо site.ru укажите адрес сайта, jpg|jpeg|png|gif — расширение запрещенных изображений, images.jpg – изображение которое будет показываться, если картинка находится не в корне сайта, укажите полный путь.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?site.ru 
RewriteRule \.(jpg|jpeg|png|gif)$ images.jpg
Защита от брутофорса Разрешаем доступ к директории administrator только по протоколу HTTP, что отсеет некоторых ботов. Для каждой CMS нужно указать свой адрес, например wp-login, wp-admin и так далее.
RewriteCond %{REQUEST_URI} ^/administrator\.php$
RewriteCond %{THE_REQUEST} HTTP/1\.0
RewriteRule ^(.*)$ -
Бытует легенда, что происхождения названия сервера Апач происходит не от названия индейского племени. Когда сервер был еще в самом начале пути, группа энтузиастов небольшие дополнения к коду, патчи (англ – patch), и «a patchy server» превратилось в Апач, а знаменитое перо на логотипе появилось позже. В материале перечислены наиболее часто используемые примеры, а большинство возможностей даже не упомянуто, как модуль mod_rewrite, предоставляющий множество возможностей. Статья писалась эпизодическими «набегами», так что если увидите ошибку, поправьте. Мой аккаунт на Marketplace — https://timeweb.com/ru/community/marketplace/bashkov-vladislav, обращайтесь

Перенаправление (редирект)

/pub/home/server1/html/ phpinfo() Перенаправление (редирект) только при запросе определенных страниц. Redirect /location/from/root/file.ext http://www.serv.ru/new/file/location.xyz /location/from/root/file.ext www.serv.ru/new/file/location.xyz /oldfile.html /old/oldfile.html напр. Redirect /oldfolder http://www.serv.ru/newfolder www.oldserv.ru/oldfolder/images/smile.gifwww.serv.ru/newfolder/images/smile.gif Глобальное перенаправление (редирект) на другой адрес.Redirect / http://www.newsite.ru Перенаправление (редирект) только посетителей с определенным IP-адресом.

С этим читают