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

Содержание:

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

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

Создание страниц ошибок

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

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

Вы можете создать страницу, используя следующий код:

Каждый раз, когда веб-сайт отображает ошибку 401, ваш сервер загружает настроенную страницу ошибки.

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

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

Как вы, вероятно, заметили, old_dir указывает на старый URL-адрес и сообщает серверу, если есть запрос для этого URL-адреса, перенаправить их на URL-адрес new_dir.

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

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

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

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

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

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

Во второй строке отображается файл паролей на веб-сервере Apache.

Третья строка определяет тип аутентификации. Последняя строка предназначена для включения этой функции.

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

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

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

Запретить посетителям на основании их IP

Apache позволяет вам блокировать посетителей на основе их IP-адресов или разрешать доступ определенным пользователям. Например, вы можете запретить конкретному пользователю доступ к панели администратора.

Третья и четвертая строки говорят серверу блокировать эти IP-адреса. «Разрешить от всех» дает доступ всем пользователям, а «Запретить» запрещает заблокированным пользователям доступ к странице и получение ошибки 403.

Часовой пояс сервера

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

Вторую часть можно изменить на любую страну по вашему желанию.

Изменить страницу индекса по умолчанию

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

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

Настройки веб-серверов в Панели управления

В настройках базового веб-сервера вы можете изменять все директивы PHP, значение графы Changeable для которых соответствует PHP_INI_PERDIR или PHP_INI_ALL. Эти настройки будут иметь силу на всех сайтах, которые работают на этом веб-сервере.

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

Чтобы установить индивидуальные параметры PHP для отдельного сайта, используйте файл .htaccess. Через него можно управлять всеми параметрами, доступными для изменения на базовом веб-сервере – примеры самых востребованных перечислены ниже.

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

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

Директория в пути расположения файла должна существовать, а если ее нет — обязательно создайте папку вручную. Файл журнала будет создан при появлении первой ошибки.

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

Вместо 512M укажите желаемый размер ограничения

Обратите внимание, что символ «M» (латинская M) указывается слитно со значением. Уточнить максимальное значение оперативной памяти, доступное по тарифу, можно в

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

Вместо 300 укажите желаемый размер ограничения

Обратите внимание, что выполнение скрипта более чем в 10 минут (600 секунд) завершится ошибкой с кодом 504

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

Вместо 200M укажите желаемый размер ограничения

Обратите внимание, что символ «M» (заглавная латинская M) указывается слитно со значением

Максимальный размер передаваемых переменных определяется с помощью следующей директивы:

Вместо 15000 укажите необходимый размер ограничения, который требует CMS сайта.

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

Вместо «windows-1251» подставьте подходящую кодировку, например, UTF-8. Проверить, в какой именно кодировке написан сайт, можно через инструменты используемого браузера. Если сайт не обрел корректный вид, обратитесь за помощью в службу технической поддержки.

Чтобы заставить интерпретатор PHP обрабатывать файлы с произвольным расширением, (например, .phtml), добавьте в файл .htaccess следующую строку:

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

По умолчанию время хранения сессий — 1440 секунд (24 минуты). Для изменения этого значения добавьте в .htaccess следующие директивы:

Обратите внимание: при большом количестве посетителей и длительном времени сохранения сессий в папке, указанной в session.save_path, образуется большое количество файлов. Это может вызывать замедление сайта в момент очистки старых сессий и увеличивать количество потребляемых ресурсов

Альтернативные механизмы хранения и очистки сессий:

  1. Указывать вложенность директорий хранения сессий с помощью аргумента N в session.save_path и очищать старые сессии собственными скриптами ( в документации PHP).
  2. Реализовать собственный механизм хранения сессий (например, в MySQL) и установить его с помощью функции session_set_save_handler.

Для чего нужен файл .htaccess?

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

  1. Данный метод часто используется если вы хотите чтобы при вводе в адресную строку адрес сайта с www, пользователей автоматически перенаправляло на адрес с http://
    Ссылка на руководство — http://prog-time.ru/kak-sdelat-301/

  2. Вы можете изменить файл, который открывается по умолчанию в каталоге, обычно это файл с именем index (index.html, index.php и т.д.)
    Ссылка на руководство — http://prog-time.ru/kak-zadat-glavnyj-fajl-dlya-sajta-directoryindex-v-htaccess/

  3. Вы можете перенаправить пользователей на собственную страницу ошибок при их возникновении
    Ссылка на руководство — http://prog-time.ru/izmenenie-stranitsy-dlya-oshibok/

  4. Вы можете сменить часовой пояс на вашем сайте
    Ссылка на руководство — http://prog-time.ru/kak-izmenit-chasovoj-poyas-na-servere-kak-izmenit-vremya-na-sajte/

  5. Вы можете запрещать и разрешать доступ к файлам.
    Ссылка на руководство — http://prog-time.ru/upravlenie-dostupom-s-pomoshhyu-htaccess/

  6. Вы можете разрешать доступ к запрещенным файла только с конкретного ip адреса или наоборот заблокировать доступ к файлам.
    Ссылка на руководство — http://prog-time.ru/upravlenie-dostupom-s-pomoshhyu-htaccess/

  7. Например, вы можете перенаравить пользователей использующих планшет на один файл, а пользователей использующих компьютер на другой.
    Ссылка на руководство — к сожалению, мы не успели написать эту статью. Мы обязательно решим эту проблему. Вы можете написать нам в группу Вконтакте и мы вам обязательно поможем https://vk.com/progtime

  8. С помощью этого, вы сможете запретить копирование материалов вашего сайта.
    Ссылка на руководство — к сожалению, мы не успели написать эту статью. Мы обязательно решим эту проблему. Вы можете написать нам в группу Вконтакте и мы вам обязательно поможем https://vk.com/progtime

  9. Ссылка на руководство — http://prog-time.ru/izmenyaem-kodirovku-na-sajte/

  10. Вы можете заблокировать пользователей, которые переходят с определенного домена на ваш сайт.
    Ссылка на руководство — к сожалению, мы не успели написать эту статью. Мы обязательно решим эту проблему. Вы можете написать нам в группу Вконтакте и мы вам обязательно поможем https://vk.com/progtime

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

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

Файл .htaccess дает хорошие возможности для улучшения безопасности сайта. Наиболее популярные мы сейчас перечислим:

Как защитить сайт от кражи картинок?

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

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

Блокируем нежелательных User Agent-ов

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

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

Бывает такое, что один пользователь заходит к вам на сайт и видит его нормальным, а другой видит неизвестные символы вместо букв. Это происходит из-за кодировки сайта. Чтобы браузер пользователя правильно ее распознал, сайт делается в одной из популярных кодировок:

  • UTF-8 — универсальная двухбайтовая кодировка
  • Windows-1251 — Кириллица (Windows)
  • KOI8-r — Кириллица (КОИ8-Р)
  • cp866 — Кириллица (DOS)
  • Windows-1250 — Центральная Европа (Windows)
  • Windows-1252 — Западная Европа (Windows)

Также кодировку нужно указывать в мета-теге каждой страницы сайта, это сообщает браузеру в какой кодировке сделан сайт.

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

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

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

Чтобы выключить перекодировку сервера нужно вписать:

Все о htaccess – основные возможности

Правильная настройка файла htaccess позволяет вносить некоторые изменения в работу веб-сервера без получения административных прав. Управлять директивами основного конфигурационного файла (httpd.conf) могут только администраторы.

В процессе обработки запросов веб-сервер может генерировать коды различных ошибок. Например, если введенный URL ссылается на несуществующую страницу, Apache отправит код, который может быть непонятен рядовому пользователю. При разработке веб-приложений создают отдельные страницы с пояснениями ошибок (например, «Ошибка 404 – страницы не существует»). Чтобы организовать процесс автоматического перенаправления на данную страницу, используют следующую директиву в файле htaccess:

ErrorDocument 404 https://website.net/error/404.html

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

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

Redirect 301 /some_page.html https://website.net/some_another_page.html

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

Redirect 301 / https://www.new_website_domain.net/

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

Как изменить доступ к файлам, с помощью .htaccess?

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

ВНИМАНИЕ

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

Первая директива, с которой мы познакомимся, это директива Order. Синтаксис директивы прост и она может быть использована в двух вариантах:

Order Deny,Allow
# или
Order Allow,Deny

Order Deny,Allow — это начала кода, которое показывает, что после него будут перечислены параметры ограничения доступа к файлам.

Allow — разрешает доступ.

Deny — запрещает.

В зависимости от выбранного варианта или для директивы Order, мы изменяем логику работы сервера. Если используем первый вариант (Deny,Allow), то мы сообщаем серверу, что хотим запретить доступ для всех (deny), кроме тех, которым разрешим (Allow).

Когда мы используете второй вариант (Allow,Deny), то подразумевается, что мы разрешаем доступ всем, кроме определенных IP.

Здесь стоит отметить, что на самом деле использование директивы Order не является обязательным и возможно использование директив Deny и Allow без директивы Order. Также не будет ошибкой, если, к примеру, объявив в директиве Order вариант Deny,Allow, мы сначала используем директиву Allow, а затем Deny. Хотя все же лучше будет, если мы в этом вопросе не будем отходить от рекомендаций документации.

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

Файл .htaccess можно создать при помощи Вашего любимого текстового редактора. Просто создаем новый файл, сохраняем в кодировке ANSI и при сохранении присваиваем ему имя «.htaccess». Если вы работаете на Windows или MacOS, так же необходимо преобразовать формат окончания строк в UNIX-формат, иначе сервер, с загруженным на него файлом .htaccess будет выдавать 500 ошибку.

Теперь подробнее, как это можно сделать при помощи бесплатного текстового редактора Notepad ++, скачать который можно здесь:

Открываем текстовый редактор и он автоматически создает новый файл. Если новый файл программой не создан, создаем его сочетанием клавиш ctrl + N или выбрав команду «новый» в меню «файл»:

Заходим в меню «кодировки», чтобы убедится, что кодировка нашего файла ANSI, если кодировка UTF или UCS, то легким кликом мыши преобразовываем ее:

Находим в меню «Правка» подменю «Конверсия конца строки» и меняем в нем кодировку на Unix-формат:

Нажимаем на изображение дискетки либо сочетание клавиш ctrl + S, либо выбираем команду «сохранить» или «сохранить как» в меню «файл». В появившемся диалоговом окне выбираем директиву для сохранения, в поле «тип файла» выбираем «all types» (все типы), в поле «имя файла» пишем «.htaccess», нажимаем «сохранить».

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

Проверяем сайт на наличие ошибок. Если сервер выдает ошибку 500, значит, где-то допущена ошибка. Проверьте синтаксис файла, еще раз проверьте кодировку и формат переноса строк. Самая распространенная причина, почему после загрузки файла .htaccess на сервер, появляется ошибка 505 (ошибка сервера), это неправильная кодировка в файле .htaccess.

читать далее →

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

Важно! Использование любой директивы для настройки РНР напрямую зависит от версии РНР, которая установлена на сервере и от ограничений самого хостера. Потому если какая-то директива не отработала или ее использование привело к ошибке на сайте (и вы уверены, что задали ее верно) — обратитесь в техподдержку хостера и уточните о причинах и способах устранения возникшей ошибки

Обычно за настройки PHP отвечает файл php.ini, но часть этих настроек можно задать через .htaccess. Для этого используются два выражения: php_value — для логических значений (например включить\выключить) и php_flag для числовых значений. Вот правила написания этих выражений:

где ЗНАЧЕНИЕ1 может быть on, off, 1 или 0 (1 и on — означает включить, а 0 и off — выключить);

ЗНАЧЕНИЕ2 — любое числовое или буквенное значение, которое подходит под конкретную директиву;

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

magic_quotes_gpc

— вкл\выкл функцию magic_quotes_gpc

Важно! Эта директива считается устаревшей и в более новых версиях PHP (начиная от 5.4.0) была отключена. display_startup_errors

display_startup_errors

— вкл\выкл показ ошибок, которые происходят при работе PHP

display_errors

— вкл\выкл показ ошибки в браузер

output_buffering

— вкл\выкл буферизацию вывода данных

register_globals

— вкл\выкл глобальные переменные

engine

— вкл\выкл исполнение PHP в папке в которой находится .htaccess и во всех вложенных

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

upload_max_filesize

— устанавливает максимальный размер загружаемого файла

user_agent

— задает значение строки user_agent, которую передает сервер

post_max_size

— задает максимальный размер пересылаемой почты

mysql.default_user

— задает имя пользователя базы данных

mysql.default_password

— задает пароль для пользователя БД

mysql.default_host

— задает имя хоста БД (обычно это localhost)

sendmail_from

— задает имейл для отправки почты с помощью PHP

auto_prepend_file

— задает файл, который будет добавлен в начало каждого PHP-скрипта

auto_append_file

— задает файл, который будет добавлен в конец каждого PHP-скрипта

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

Код стандартного .htaccess файла вордпресс

В зависимости от процедуры установки WordPress, у вас может не быть файла .htaccess в корне сайта. Чтобы его создать, используйте текстовый редактор. Назовите файл .htaccess и загрузите его на сервер. Некоторые операционные системы, например, Windows, не позволят вам задать подобное имя файла. В этом случае сформируйте файл htaccess.txt, а после загрузки на сервер переименуйте его в .htaccess.

Код, который согласно кодексу WordPress должен находиться внутри файла:

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

Не рекомендуется добавлять или редактировать что-либо между строками # BEGIN WordPress и # END WordPress. Когда вы добавляете новые правила, включайте их выше или ниже приведенного кода.

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

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

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

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

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

Рекомендуемые статьи по данной теме:

  • Проверка скорости загрузки сайта: 14 лучших инструментов
  • Редирект с http на https: повышаем безопасность сайта
  • Проверка robots.txt: типичные ошибки и их устранение

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

  1. Он позволяет переопределить многие директивы, хранящиеся в файле httpd.confg.
  2. Файл .htaccess, при помещении в корневой каталог, воздействует на весь сайт. Однако исключением для файла .htaccess из этого правила являются каталоги, имеющие отдельный конфигурационный файл, и те, что оказались ниже в древовидной структуре.
  3. Данный файл помещается в любой каталог, причем все подкаталоги будут подчиняться его директивам.
  4. Пользователь лишен возможности просматривать из браузера .htaccess, поскольку последний входит в категорию системных файлов.

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

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

Вас также может заинтересовать: Бизнес-процессы в организации: моделирование и управление основами бизнеса

3.Другие примеры с htaccess

3.1. Запретить IP-адрес и браузер

Запретим открывать сайт для пользователя с браузера IE с IP-адресом 172.111.222.55

RewriteCond %{HTTP_USER_AGENT} MSIE
RewriteCond %{REMOTE_ADDR} ^172\.111\.222\.55$
RewriteRule ^.*$ - 

Запретим для всех файл disable_file.html:

<Files disable_file.html>
deny from all
</Files>

3.3. Разрешить доступ с одного ip

Доступ будет разрешен только с одного ip-адреса 172.111.222.55

order deny,allow
deny from all
allow from 172.111.222.55

3.4. Запретить доступ с разных ip

Запретить доступ к сайту с нескольких ip-адреса 172.112.222.55, 172.113.222.55, 172.114.*.*

<Limit GET POST PUT>
order deny,allow
deny from all
deny from 172.112.222.55
deny from 172.113.222.55
deny 172.114.*.*
</LIMIT>

3.5. Редирект в URL с больших символов на маленькие

Все большие буквы в адресе URL будут переведены на маленькие.

RewriteRule  - 
RewriteRule ! - 

RewriteRule ^(*)A(.*)$ $1a$2
RewriteRule ^(*)B(.*)$ $1b$2
RewriteRule ^(*)C(.*)$ $1c$2
RewriteRule ^(*)D(.*)$ $1d$2
RewriteRule ^(*)E(.*)$ $1e$2
RewriteRule ^(*)F(.*)$ $1f$2
RewriteRule ^(*)G(.*)$ $1g$2
RewriteRule ^(*)H(.*)$ $1h$2
RewriteRule ^(*)I(.*)$ $1i$2
RewriteRule ^(*)J(.*)$ $1j$2
RewriteRule ^(*)K(.*)$ $1k$2
RewriteRule ^(*)L(.*)$ $1l$2
RewriteRule ^(*)M(.*)$ $1m$2
RewriteRule ^(*)N(.*)$ $1n$2
RewriteRule ^(*)O(.*)$ $1o$2
RewriteRule ^(*)P(.*)$ $1p$2
RewriteRule ^(*)Q(.*)$ $1q$2
RewriteRule ^(*)R(.*)$ $1r$2
RewriteRule ^(*)S(.*)$ $1s$2
RewriteRule ^(*)T(.*)$ $1t$2
RewriteRule ^(*)U(.*)$ $1u$2
RewriteRule ^(*)V(.*)$ $1v$2
RewriteRule ^(*)W(.*)$ $1w$2
RewriteRule ^(*)X(.*)$ $1x$2
RewriteRule ^(*)Y(.*)$ $1y$2
RewriteRule ^(*)Z(.*)$ $1z$2

RewriteRule  - 

RewriteCond %{ENV:HASCAPS} TRUE
RewriteRule ^/?(.*) /$1 

Troubleshooting

When you put configuration directives in a
file, and you don’t get the desired effect, there are a number of
things that may be going wrong.

Most commonly, the problem is that is not
set such that your configuration directives are being honored. Make
sure that you don’t have a in effect
for the file scope in question. A good test for this is to put garbage
in your file and reload the page. If a server error is
not generated, then you almost certainly have in effect.

If, on the other hand, you are getting server errors when trying to
access documents, check your httpd error log. It will likely tell you
that the directive used in your file is not
permitted.

This will indicate either that you’ve used a directive that is
never permitted in files, or that you simply
don’t have set to
a level sufficient for the directive you’ve used. Consult the
documentation for that particular directive to determine which is
the case.

Alternately, it may tell you that you had a syntax error in your
usage of the directive itself.

Authentication example

If you jumped directly to this part of the document to find out how
to do authentication, it is important to note one thing. There is a
common misconception that you are required to use
files in order to implement password
authentication. This is not the case. Putting authentication directives
in a
section, in your main server configuration file, is the preferred way
to implement this, and files should be used only
if you don’t have access to the main server configuration file. See for a discussion of when you should and should
not use files.

Having said that, if you still think you need to use a
file, you may find that a configuration such as
what follows may work for you.

file contents:

AuthType Basic
AuthName "Password Required"
AuthUserFile "/www/passwords/password.file"
AuthGroupFile "/www/passwords/group.file"
Require group admins

Note that must be in effect
for these directives to have any effect.

19 полезных возможностей файла .htaccess +6

  • 07.08.19 11:11


PromoPult

#462029

Хабрахабр

4000

Поисковая оптимизация, Блог компании PromoPult

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

Файл .htaccess (сокращение от «hypertext access») переопределяет настройки самого популярного типа веб-серверов Apache и его аналогов. Ниже — способы применения .htaccess для разных целей с примерами кода.

Настраиваем редиректы для SEO

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

При настройке 301 редиректов помните о двух правилах:

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

1. Настраиваем постраничные 301 редиректы

Это потребуется в следующих случаях:

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

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

  • — адрес страницы от корня, без протокола и домена. Например, .
  • — полный адрес страницы перенаправления, включая протокол и домен. Например, .

2. Избавляемся от дублей

Каждая страница сайта должна быть доступна только по одному адресу. Для этого должны быть настроены:

  • редирект на страницы со слешем в конце URL или наоборот;
  • главное зеркало — основной адрес сайта в поиске.

Сделать это можно при помощи модуля . В его составе используются специальные команды — директивы сложного перенаправления. Первой командой всегда идет включение преобразования URL:

Переадресация на слеш или наоборот

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

Код 301 редиректа на страницы без слеша:

3. Настраиваем главное зеркало

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

Редирект на HTTPS

Определять, с «www» или без будет главное зеркало, можно несколькими способами:

  • добавить сайт в Яндекс.Вебмастер в двух вариантах, в консоли отобразится информация, какой URL поисковик считает главным зеркалом;
  • проанализировать выдачу и посмотреть, каких страниц сайта больше в индексе;
  • для нового ресурса не имеет значения, с «www» или без будет адрес, выбор за вами.

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

Редирект с без www на www

4. Перенаправляем с одного домена на другой

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

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

или

Не забудьте поменять в коде «mysite1» и «mysite2» на старый и новый домен соответственно.

Блокируем доступ для определенных посетителей

Еще одним использованием файла является быстрое и простое блокирование всех запросов с определенного IP адреса или агентов. Нужно просто добавить в файл правила:

order allow,deny
deny from 192.168.0.1
allow from all

Директива указывает серверу Apache в каком порядке рассматривать директивы . В примере директива оценивается первой, а затем следует работа с . Правило рассматривается первым (несмотря на то, что в файле оно определено после правила ) и все IP адреса разрешаются. Затем, если IP адрес клиента соответствует указанному в директиве , то доступ ему блокируется. Можно блокировать доступ диапазону IP адресов, указав, например, 192.168.

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

RewriteCond %{HTTP_USER_AGENT} ^OrangeSpider
RewriteRule ^(.*)$ http://%{REMOTE_ADDR}/$ 

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

11. Отключите XML-RPC

XML-RPC — это API интерфейс, который используется Вордпресс для удаленного доступа к сайту, для трекбеков и пингбеков и используется плагином Jetpack. Оставьте его включенным, если вы пользуетесь чем-то из этого, и выключите, если не пользуетесь, так как хакеры могут перебирать пароли тысячами через файл xmlrpc.php.

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

Чтобы отключить XML-RPC, добавьте это правило:

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

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

Adblock
detector