Htaccess изменить имя файла
Файл .htaccess — один из тех файлов, которые должен быть известен и понятен каждому администратору веб сайта. На базовом уровне он управляет доступом к папкам сайта. Но есть еще много задач, которые htaccess может решить для вас.
14. Маскировка типов файлов
Иногда нужно скрыть от пользователя типы файлов на сервере. Один из способов решить задачу - замаскировать их. Например, вы можете сделать так. что все файлы будут выглядеть как HTML или PHP:
Как запретить просмотр директорий в .htaccess
Обладая определенными знаниями, любой человек может посмотреть структуру вашего сайта (в первую очередь листинг — список всех каталогов сайта). Чтобы запретить просмотр листинга, можно ввести одну строку в .htaccess:
Чтобы открыть отображение листинга, введите:
2. Запрещаем просмотр директории
Для запрещения просмотра содержимого директории используйте следующий код:
Но если вам нужно по каким-то причинам разрешить просмотр директории, используйте следующий код:
Как запретить доступ к файлам определенного типа
Если вам требуется запретить доступ к нескольким файлам одного формата, можно добавить директиву для каждого. При этом стоит учитывать, что серверу будет сложнее обрабатывать большое количество параметров в файле .htaccess. Чтобы экономить ресурсы сервера, можно закрыть доступ не к каждому файлу, а ко всем файлам схожего расширения.
Для этого добавьте следующие строки:
Где вместо txt, pdf, jpg — нужные вам расширения.
Работа с файлом .htaccess
Создать файл и загрузить его в корневую папку сайта — только первый шаг. Следующий и самый важный — начать работать с настройками, о которые мы описывали выше.
Все конфигурации в .htaccess задаются с помощью директив (или команд). Они включают в себя символы латинского алфавита, %, фигурные и квадратные скобки и другие. Каждая директива состоит из ключа (неизменяемая часть) и значения. Например, директива для изменения главной страницы сайта:
Где DirectoryIndex — ключ, а index.php — значение (страница, которую вы хотите использовать в качестве главной страницы сайта).
Чтобы внести какую-либо директиву в конфигурационный файл вашего сайта:
Откройте файл .htaccess в корневой папке. Или создайте новый, если директива должна применяться не ко всему сайту, а к конкретному файлу или папке.
Обратите внимание! Не вносите в .htaccess видоизмененные команды, если не уверены в их работе. Повреждение файла может повлечь за собой сбой работы сайта.
Ниже вы найдете директивы для нескольких наиболее распространенных операций в файле .htaccess.
ISPmanager
Нажмите Выберите файл, найдите на локальном диске созданный файл .htaccess и кликните Ok:
Готово, файл добавлен в «корень» сайта.
Как включить обработку ошибок
Чтобы установить пользовательские страницы ошибок, нужно воспользоваться директивой ErrorDocument. Добавьте в .htaccess директиву с номером ошибки и адрес созданной страницы:
4. Защищаем сайт от хотлинкинга
Если вы хотите предотвратить хотлинкинг изображений с вашего сайта, добавьте следующие строки в файл .htaccess :
3. Диагностика ошибок
Если после редактирования или размещения .htaccess при обращении к сайту вы получили ошибку 500, то, скорее всего, в файле .htaccess допущена ошибка. Посмотреть её причины вы можете в лог-файле /var/log/ваш_домен.error_log.
11. Изменение индексной страницы по умолчанию
Если вам требуется, чтобы индексная страница отличалась от значения по умолчанию, index.html , index.php , index.htm и так далее, то данная задача решается легко. Вот что нужно добавить в файл .htaccess :
Замените mypage.html на адрес URL нужной страницы.
9. Пропускаем диалог загрузки
По умолчанию, когда вы загружаете файл с веб сервера, то появляется диалог, в котором запрашивается действие с файлом (сохранить или открыть). Данный диалог очень раздражает при загрузке больших медиа файлов или документов PDF. Если файлы загружены на ваш сервер для того, чтобы пользователь их скачал, то можно сразу начать процесс. Нужно поместить в файл .htaccess следующие строки:
Как настроить 301 редиректа для сайта
Мы посвятили настройке редиректов в .htaccess отдельную статью, в которой рассмотрели 10 различных вариаций редиректов.
Рассмотрим самый часто используемый тип: редирект с одного домена на другой. Он используется, если сайт переехал на новый домен из-за ребрендинга, изменения официального названия компании или причин технического характера.
Чтобы сделать редирект, добавьте в .htaccess строки:
13. Ограничение размера файла загрузки в PHP, максимального размера запроса и максимального времени выполнения скрипта
.htaccess позволяет устанавливать некоторые значения, которые влияют на приложения PHP. Например, если вам требуется ограничить загрузку в PHP по причине экономии пространства на хостинге, используйте следующий код:
Конечно, вы можете установить значение, которое требуется, в нашем примере 15M (MB) не является фиксированным. Также можно ограничить максимальны размер запроса для загрузки в PHP:
Измените 10M на то значение, которое вам требуется.
Если вы не хотите, чтобы скрипт выполнялся вечно, то можно ограничить время его работы:
240 - количество секунд до прерывания работы скрипта.
Если требуется ограничить время для скрипта на разбор введенных данных, используйте следующую строку:
cPanel
В блоке «Файлы» нажмите Менеджер файлов:
Найдите в списке слева домен вашего сайта, кликните по нему и в строке сверху нажмите Загрузить:
Готово, файл будет загружен.
Зачем нужен .htaccess
В файле .htaccess можно задать некоторые серверные настройки Apache для конкретного сайта или отдельной папки. Например:
Настроить редирект. Редирект — это переадресация с одного адреса на другой. Подробнее о назначении редиректов, их типах и настройках мы рассказали в статье. Файл .htaccess позволяет задавать гибкие перенаправления: например, для отдельного IP, со страниц без префикса www на страницы с ним, редиректы для всех страниц, кроме главной и другие.
Назначить страницы ошибок. На сайтах встречаются различные ошибки (404 — страница не найдена, 403 — в доступе отказано и т. д.). Тогда пользователь видит страницу с описанием возникшей ошибки. По умолчанию такие страницы практически не оформлены и могут сильно отличаться от дизайна остального сайта. Выход — создать свою красочную страницу ошибки и задать ее появление в .htaccess.
Изменить главную страницу. В архитектуре сайта по умолчанию выбрана главная страница (индексный файл), которая отображается первой при открытии сайта. Если вы хотите сделать первой какую-то другую страницу, используйте .htaccess.
Включить кэширование файлов. Кэширование позволяет поместить часть статичной информации сайта в кэш. Благодаря этому страницы сайта будут быстрее загружаться в браузерах пользователей. Если настроить кэширование в .htaccess, ускорится работа сайта.
Создать ЧПУ. ЧПУ расшифровывается как «человекопонятный URL». Иногда URL-адреса могут быть слишком длинными или содержать численное обозначение страниц. Это негативно влияет на пользовательский фактор, а значит и на SEO-показатели. В .htaccess с помощью одной команды можно назначить для URL латинские символы (или задать другой подходящий способ).
Защитить папку паролем. Если сайт содержит папку с конфиденциальной информацией, ей требуется дополнительная защита. Через .htaccess можно настроить базовую аутентификацию по логину и паролю. Это позволит снизить риск взлома и кражи данных.
Настроить параметры php. PHP — язык программирования, который используется в разработке большинства сайтов с динамическим контентом. Настраивать PHP можно в файле php.ini, а можно работать с ним как с модулем .htaccess и управлять настройками в одном конфигурационном файле.
Ограничить доступ к сайту. В .htaccess можно ограничить доступ к сайту для нежелательных IP, что позволит контролировать доступ, а также отражать хакерские атаки. Например, DDoS-атаку, в момент которой процессор пытаются нагрузить таким количеством запросов, которые он не способен обработать. Как правило, запросы поступают с одного/нескольких IP-адресов. Подробнее: Что такое DDoS-атака.
Закрыть доступ к сайту от поисковых ботов. Чтобы сайт отображался в поисковой выдаче, его должны обойти поисковые роботы, которые собирают информацию, необходимую для индексации. Однако некоторые поисковые боты могут быть нежелательны (SolomonoBot и др.). В .htaccess можно ограничить доступ к сайту для нежелательных ботов по User-Agent.
Таким образом, .htaccess позволяет гибко настраивать отдельные сайты без изменения общих параметров сервера. Также этот конфигурационный файл можно передавать внештатным SEO-специалистам: они получат доступ к настройками именно SEO-оптимизации без возможности менять настройки на сайте или хостинге.
Ниже рассмотрим, как создать файл .htaccess на своем компьютере и загрузить его на хостинг.
7. Кеширование файлов
Другой метод ускорения загрузки вашего сайта - кеширование файлов. вот что нужно добавить в файл .htaccess для включения кеширования:
Вы можете добавить типы файлов (или удалить некоторые из них) к списку в примере. Также можно использовать max-age для указания времени в секундах, для хранения ваших файлов в кеше.
Заключение
Существует еще множество задач, которые может решить .htaccess . Например, можно установить автоматический перевод страниц сайта, или временную зону, или удалить www из адреса URL, и многое другое. Но прежде чем начать эксперименты с .htaccess всегда нужно сделать резервную копию оригинала, чтобы была возможность вернуться к исходному коду.
10. Переименование файла .htaccess
По некоторым причинам, обычно связанным с безопасностью, может потребоваться переименование файла .htaccess . Что очень просто сделать. Теоретически, переименование файла .htaccess не должно вызывать проблем с выполнением приложений на вашем сервере, но если они вдруг появятся, нужно просто восстановить оригинальное имя.
Также нужно обновить всех вхождения в самом файле и там, где упоминается .htaccess , иначе возникнет масса ошибок.
Как сделать .htaccess в Windows
Если ваш сайт создан с помощью CMS (WordPress, Joomla, 1С Битрикс и других), файл .htaccess будет сгенерирован автоматически. Вы сможете его найти в корневой папке сайта в панели управления хостингом. Как правило, по умолчанию в файле не будет никакой информации, кроме нескольких строк с комментариями.
Обратите внимание! На хостинге с панелью управления cPanel .htaccess и все другие файлы, которые начинаются с точки, по умолчанию скрыты. Чтобы он начал отображаться в корневой папке, следуйте инструкции.
Если же сайт был написан с нуля, а не на CMS, или если файл по какой-то причине был удален, вы можете создать его на компьютере. Чтобы создать файл .htaccess на компьютере с ОС Windows:
Нажмите Файл → Сохранить как (или используйте комбинацию горячих клавиш Ctrl + Shift + S):
В графе «Тип файла» выберите Все файлы. Затем в поле «Имя файла» введите «.htaccess» и нажмите Сохранить:
Готово, файл создан.
Если файл сохранился под названием .htaccess.txt, нужно убрать расширение текстовых файлов (.txt). Для этого откройте проводник, перейдите во вкладку Вид и уберите галочку напротив пункта «Расширения имен файлов»:
Интерфейс проводника в Windows 10
Когда файл будет готов, залейте его в корневую папку сайта. Для этого войдите в панель управления и следуйте подходящей инструкции:
3. Ускоряем загрузку с помощью сжатия файлов
Вы можете сжимать любые файлы, а не только изображения. Например, для сжатия HTML файлов используйте следующий код:
А для сжатия текстовых:
Можно также сжимать JavaScript файлы или определять несколько типов файлов для архивации:
В качестве альтернативы можно сжимать все HTML, JavaScript, CSS и прочие файлы с помощью GZIP:
Пример файла .htaccess
Обратите внимание, что частично или полностью, некоторая информация из данных примеров могла потерять свою актуальность в связи с изменениями версий используемого ПО.
Содержание
Работа с .htaccess
.htaccess (с точкой в начале имени) — это файл-конфигуратор Apache-серверов, который дает возможность настройки работы сервера в отдельных директориях (папках), не предоставляя доступа к главному конфигурационному файлу. Например, устанавливать права доступа к файлам в директории, менять названия индексных файлов, самостоятельно обрабатывать ошибки Apache перенаправляя посетителей на специальные страницы ошибок. .htaccess представляет собой обычный текстовый документ с расширением htaccess. Данный файл обычно находится в корне сайта, однако вы можете создавать и дополнительные .htaccess-файлы для различных директорий вашего сайта.
Mod_rewrite — модуль, используемый веб-серверами для преобразования URL'ов.
Редирект .htaccess
Простой редирект
Ставится в файле .htaccess . / и означает, что всё с верхнего уровня сайта, включая все подкаталоги, будет переадресовано (не забывайте поставить последний / ). Если вы хотите переадресовать только страницу, сохранив PR старой страницы, можно сделать так:
Редирект на любую страницу по ip пользователя или при запросе конкретной страницы (а также по маске имени)
Если у пользователя ip 192.152.37.125, то он будет перенаправлен на страницу user.php :
Редирект при запросе определённых файлов
Если запрашиваются файлы, расширение которых не указано в файле .htaccess (gif и jpg), то следует перенаправление:
Использование mod_rewrite
Редирект с регулярным выражением
Прописывается в файле .htaccess.
Если необходимо сделать различное перенаправление для отдельных страниц, можно использовать следующее:
RedirectMatch Permanent — это эквивалент «RedirectMatch 301», строка с *(Wildcard) должна быть последней в этом списке.
Создание удобно читаемых URL
Редирект на PHP
Редирект всех файлов в папке на один файл
Редирект всей папки кроме одного файла
В следующем примере все файлы из папки /superdiscount будут редиректится на на файл /hot-offers.php , КРОМЕ файла /superdiscount/my-ebook.html который должен редиректится на /hot-to-make-million.html
Редирект динамического URL на новый файл
Данный вариант пригодится, если вы хотите редиректить динамический URL с параметрами на новый статический файл.
Массовый редирект новых файлов
Теперь перейдем к самому сложному моменту, когда вам надо редиректить массу URL-ов, например после смены вашей CMS.
Тут сразу возникает ряд проблем: во-первых, внесение всех изменившихся адресов в .htaccess файл займет очень много времени, да и само по себе занятие малоприятное.
Во-вторых, слишком много записей в .htaccess файле будут тормозить Apache сервера.
И в-третьих, при внесении такого количества информации высока вероятность, что вы где-то ошибетесь.
Поэтому, самый лучший выход — нанять программиста, который вам напишет динамический редирект. Нижеприведенный пример написан на PHP, но так же может быть выполнен на любом языке.
Предположим, вы перешли на новую систему ссылок на вашем сайте и все файлы оканчивающиеся на старый id должны быть средирекчены. Сначала создаем в базе таблицу, которая содержит старый id и новый URL для редиректа. old_id INT new_url VARCHAR (255) Далее пишем код который свяжет ваши старые id с новыми URL-ами
После этого, добавляем следующую строчку в .htaccess:
затем создаем PHP-файл redirectold.php , который будет поддерживать 301 редирект:
Теперь все запросы к вашим старым URL-ам будут вызывать redirectold.php , который найдет новый URL и вернет 301 ответ с вашей новой ссылкой.
Редиректы в зависимости от времени
Когда нужно применять уловки, типа содержания зависящего от времени, масса вебмастеров все ещё используют CGI-скрипты, которые производят редиректы на специальные страницы.
Как это может быть сделано через mod_rewrite? Есть много переменных названных TIME_xxx для условий редиректа. В связке со специальными лексикографическими образцами для сравнения STRING и =STRING мы можем производить редиректы зависящие от времени:
Это выдает содержимое foo.day.html при запросе URL foo.html с 07:00 до 19:00 а в оставшееся время содержимое foo.night.html .
Меняем расширение .html на .php
Иногда бывает так, что у вас статичный веб-сайт, а вам необходимо, чтобы на нем срабатывал какой-нибудь php-скрипт. Для этого вам необходимо сказать серверу, чтобы он обрабатывал эту страницу как php-файл.
Этот прием можно использовать и для других расширений файлов:
Запрещение доступа в конкретную директорию
Запрещаем доступ для всех ко всем файлам в директории deny from all
к конкретному файлу:
по ip пользователя:
Доступ в данную директорию будет разрешён только пользователю с ip 192.152.37.125.
И наоборот, если хотите запретить отдельным ip пользователей доступ к вашему сайту, то пропишете следующие строчки:
Директива Options -Indexes — запрет на отображение содержимого каталога при отсутствии индексного файла.
Иногда нужно сделать так, чтобы в случае отсутствия в каталоге файла, который показывается по умолчанию, не выдавался список файлов в каталоге. Тогда можно добавить в .htaccess такую строчку :
Запрет доступа к файлам с несколькими типа расширений
Запрещен доступ к файлам с расширением .inc, .conf и *.cfg. Хотя директива, по умолчанию, не работает с регулярными выражениями, но их можно включить поставив символ тильды(~) в опциях директивы. Синтаксис следующий: [тильда] [пробел] [далее_все_без_пробелов] Чтобы блокировать этот доступ, запишем следующее:
RewriteRule ^.htaccess$ - [F]
Конструкция ^.htaccess$ в этом регулярном выражении означает:
^ - якорь начала строки
$ - якорь конца строки
. - в регулярных выражениях точка . обозначает мета-символ и должна быть защищена обратным слэшем (backslash), если вы все-таки хотите использовать именно фактическую точку.
Имя файла должно быть расположено точно между начальным и конечным якорем. Это будет гарантировать то, что только это определенное имя файла (и никакое другое) сгенерирует код ошибки.
[F] - специальный 'запрещающий' флажок (forbidden).
[NC] - не учитывать регистр букв.
[OR] - означает 'или следующее условие'.
Определение кодировки
Определение кодировки, в которой сервер «отдает» файлы
Определение кодировки на загружаемые файлы
Пароль на директорию
Инструкция как закрыть папку паролем находится - НА ЭТОЙ СТРАНИЦЕ
Свои страницы ошибок
Инструкция на создание своих страниц ошибок находится - НА ЭТОЙ СТРАНИЦЕ
IE игнорирует страницы размером меньше 512 байт.
Индексация директорий и поддиректорий
Чтобы избежать индексации поисковыми системами директорий и поддиректорий, необходимо прописать, например, такую строку:
Эта директива задает файл, который будет вызван при обращении к директории без указания имени файла.
Можно указать несколько индексных страниц. При запросе каталога они будут искаться в том порядке, в котором перечислены в директиве DirectoryIndex. Если не будет найден файл index.html , то будет произведен поиск файла index.php и т.д.
DirectoryIndex index.html index.php index.shtml
Защита изображений
Часто веб-мастера нагло копируют контент с вашего сайта вместе с рисунками, причем рисунки подгружаются с вашего же сервера. Это создает лишний трафик, что, зачастую, приводит к ряду проблем.
Защититься от таких веб-мастеров и не помешать поисковым роботам индексировать изображения достаточно просто:
hotlinker.jpg - изображение, которое будет отображаться, вместо истинных изображений. Рекомендуем в этом изображении отобразить ваш логотип и ссылку на ваш сайт.
Еще один варинат запрета доступа к картинкам с неразрешенных сайтов:
Поисковые машини и разного рода сканеры создают коллосальный трафик на вашем сайте. Нижеприведенный блок кода позволит запретить доступ ботам на сайт.
Обращения к robots.txt
Чтобы иметь больше информации о посещении поисковиков, полезно иметь подробную информацию об обращении к файлу robots.txt . Для того, чтобы оганизовать это, в '.htaccess' должны быть следующие записи:
Теперь при запросе файла robots.txt наш RewriteRule переадресует посетителя (робота) к обрабатывающему запросы скрипту robot.php .
Кроме того, переменная передается скрипту, которая будет обработана в соответствии с вашими нуждами. REQUEST_URI определяет имя запрашиваемого файла. В данном примере это robots.txt . Скрипт прочтет содержание robots.txt и отправит его web-браузеру или роботу поискового сервера. Таким образом, мы можем считать хиты посетителей и вести лог-файлы.
PHPSESSID
Для отключения добавления PHPSESSID к URL вставьте в начало index.php:
Если вам все это показалось сложным, воспользуйтесь готовым сервисом преобразования динамических URL в статические с помощью htaccess.
Директивы кеширования
Кэширование для всех типов файлов по времени доступа
Кэширование для всех типов файлов по времени изменения
Кэширование для определённых типов файлов
Запрет кеширования с помощью сервера Apache
Впишите в .htaccess следующее:
Необходимые заголовки будут передаваться автоматически и специально писать их в PHP уже не нужно — кэш уже выключен!
Кеширование с помощью файла .htaccess
Кеширование javascript файлов с помощью файла .htaccess
Будьте осторожны при кешировании, т.к. при изменении файла пользователь может получить новый вариант только через 3 дня!
Поиск страниц больше чем в одном каталоге
Иногда необходимо позволить веб-серверу искать страницы больше, чем в одном каталоге.
RewriteEngine on
Поддомены для пользователей
Повреждение бинарного файла
Если при передаче файлов через формы (при указанном enctype=«multipart/form-data» ) бинарные данные повреждаются, пропишите в /cgi-bin/.htaccess директиву:
Ошибка SWF файлов
Ошибки при обращении к страницам, содержащим ключевые слова, типа $_REQUEST .
Такое может происходить из-за установленного модуля в Apache. По умолчанию он блокирует в запросах строки с SQL аргументами и другими потенциально опасными командами.
Forbidden You don't have permission to access /adm/index.php on this server. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Запрос небезопасен и был отвергнут.
Добавьте в .htaccess следующее:
Оптимально снимать защиту только с той папки, в которой это необходимо, не убирая защиту со всего сайта.
Склейка страницы (301)
Со страниц без слэша будет установлен редирект на «слэшевые».
Принудительная постановка замыкающего слеша
Следующий код всегда будет добавлять слеш в адрес URL вашего сайта, что хорошо помогает в области SEO сайта:
Загрузка файлов вместо открытия
Многие видели, как при попытке скачать архив с расширением .rar браузер открывает его в виде простого текста из мешанины символов. Это значит, что на сервере сайта не настроено принудительное сохранение типов файлов, которые не должны открываться в браузере:
AddType application/octet-stream .rar .doc .mov .avi .pdf .xls .mp4
Сжатие страниц
Междоменные шрифты для FF
При использовании встроенных шрифтов Firefox не позволяет брать их с внешних сайтов. Следующий код для файла .htaccess позволит обойти данное ограничение:
PHP в JavaScript
При разработке кода JavaScript иногда требуется использовать PHP в файлах .js, например, для получения данных из базы данных:
Разложить файлы robots.txt, sitemap.xml и т.п. в папки доменов
Если есть запрашиваемый файл из корня сайта, в папке домена, то перенаправляем его туда:
Блокируем User Agents
Если вы столкнулись с проблемой, что какие-то типы User Agent нагружают ваш сервер ненужными запросами, то от них можно избавиться добавив в .htaccess следующие строчки:
Переадресация по языку
Защита картинок от скачивания по ссылкам на других сайтах
Включая переходы без REFERER, т.е. когда адрес указывают в строке браузера:
Только по ссылкам на чужих сайтах:
Блокировка пользователей с определенным рефером
Если вы не хотите, чтобы пользователи переходя с определенных сайтов попадали на ваш, вы можете это запретить:
.htaccess — это конфигурационный файл веб-сервера Apache , позволяющий управлять работой веб-сервера и настройками сайта с помощью различных параметров (директив) без изменения основного конфигурационного файла веб-сервера.
На хостинге RU-CENTER в настоящее время используется веб-сервер Apache версии 2.4.
Директивы файла .htaccess действуют для каталога, в котором размещён такой файл, и для всех его подкаталогов. Если вы желаете с помощью .htaccess изменить настройки для сайта в целом, его следует размещать в корневом каталоге сайта ~/ваш_домен/docs.
Пожалуйста, будьте внимательны при редактировании файла .htaccess! При сохранении такого файла в кодировке UTF-8 в нём не должно присутствовать BOM-сигнатуры. Для редактирования файла .htaccess и других конфигурационных файлов мы рекомендуем использовать не «Блокнот» Windows, а специальные текстовые редакторы, например Notepad++.
1. Управление доступом к файлам и каталогам
Защита паролем - это один аспект вопроса, но иногда нужно полностью блокировать пользователю возможность доступа к определённым файлам или каталогам. Такие задачи обычно возникают для системных папок, например, includes . Приложение должно иметь доступ к ним, а пользователь лишается всех привилегий.
Для решения задачи добавьте следующий код в файл .htaccess и сохраните его в нужном каталоге:
Но такой ход блокирует доступ для всех, включая вас. Чтобы обеспечить себе доступ нужно указать IP свой адрес. Вот код:
xxx.xxx.xxx.xxx - ваш IP адрес. Если заменить последние три цифры на 0/12 , например, то будет указан диапазон IP адресов в одной сети. Но такой подход может привести к проблемам, поэтому лучше указывать список IP адресов раздельно.
Если нужно блокировать определенный файл, включая сам .htaccess , используйте следующий код:
Аналогично, если вам требуется открыть доступ с определенных IP адресов, перечислите их с помощью allow from .
Если нужно блокировать доступ к определённым типам файлов, используйте следующий код:
Plesk
В блоке нужного домена выберите Менеджер файлов:
Готово, файл будет загружен.
8. Отключение кеширования для определенных типов файлов
Если вам не нужно кешировать определенные типы файлов, то можно просто не включать их в список. Однако, иногда файлы могут кешироваться даже если вы не объявили их в списке. В таких случаях можно отключить кеширование только для таких типов файлов. В большинстве случаев требуется отключать кеширование для динамических файлов, таких как скрипты. Вот код:
Просто добавьте типы фалов, которые не нужно кешировать в список.
Что такое файл .htaccess
.htaccess — это дополнительный конфигурационный (служебный) файл, с помощью которого можно управлять настройками сервера. Он применяется в том случае, если хостинг-провайдер использует программное обеспечение Apache.
Файл .htaccess будет полезен, если ваш сайт размещен на виртуальном хостинге. На нём несколько пользователей делят ресурсы одного сервера. Общие настройки для управления этим сервером закрыты от клиентов, чтобы у них не было возможности влиять на другие сайты. При этом пользователи могут управлять настройками сервера только в рамках своего сайта через создание .htaccess.
5. Блокирование пользователей перенаправленных с определенного домена
Если вы не приветствуете пользователей определенного домена, то можно забанить на своем сайте. Например, если ваш сайт попал в список там, откуда не желателен трафик (например, порнографические сайты, неонацисткие ресурсы и прочее), то вы можете перекрыть его с помощью страницы 403 (запрет доступа). Нужно, чтобы был включен mod_rewrite (обычно он включен). Добавляем код:
Как запретить доступ к файлу, папке или всему сайту
Когда на сайте идут «ремонтные работы», он функционирует нестабильно. Чтобы в это время на него не заходил никто, кроме разработчиков, можно ограничить доступ к сайту или отдельным файлам.
- Чтобы закрыть доступ ко всему сайту, добавьте в файл строки:
Чтобы закрыть доступ к конкретной папке, создайте новый файл .htaccess в этой папке и добавьте в него код выше.
Чтобы закрыть доступ от всех посетителей, кроме конкретного IP (через запятую можно указать несколько IP-адресов) введите:
Где 123.123.123.123 — IP-адрес, для которого доступ разрешен.
- Чтобы закрыть доступ к конкретному файлу, создайте новый файл .htaccess в той папке, где находятся нужный файл, и добавьте следующие строки:
Где example.exe — название файла, к которому нужно закрыть доступ.
Примеры использования файла .htaccess
1. Перенаправление доменов c синонима сайта на основной домен с кодом 301
Эти правила рекомендуется размещать в самом начале файла .htaccess.
2. Постоянное перенаправление с кодом 301
Если вы изменили адрес страницы сайта, добавьте в .htaccess следующие строки, чтобы запросы со старого адреса переадресовывались на новый
Подобное правило не сработает для перенаправления с адресов, содержащих Query String (символы после ?). Для запросов, содержащих QUERY_STRING, можно использовать сочетание RewriteCond и RewriteRule.
3. Переопределение страниц ошибок
При помощи файла .htaccess вы можете установить свои страницы ошибок:
Соответствующие файлы страниц ошибок (401.html, 404.html и др.) необходимо разместить в каталоге ~/ваш_домен/docs/errors.
Для того чтобы при случайном упоминании прямых ссылок на такие страницы они не проиндексировались в поисковых системах, рекомендуется:
a) в файле ~/ваш_домен/docs/robots.txt прописать
User-agent: *
Disallow: /errors
b) создать файл ~/ваш_домен/docs/errors/.htaccess, в котором прописать
4. Постраничное перенаправление запросов на другой домен c кодом 301
5. Ограничение доступа к сайту по IP
Запретить доступ к сайту с IP-адресов 123.4.5.6 и 123.5.4.3
Order Allow,Deny
Allow from all
Deny from 123.4.5.6 123.5.4.3
Запретить доступ к сайту со всех адресов кроме 123.4.5.6 и 123.5.4.3:
Order Deny,Allow
Deny from all
Allow from 123.4.5.6 123.5.4.3
Запретить доступ к сайту для всех:
6. Переопределение главной страницы сайта (индексного файла каталога)
Сделать главной страницей файл menu.html:
7. Включение обработки PHP в .html-файлах
8. Запрет выдачи листинга каталога
В случае отсутствия в папке главной страницы (индексного файла), при обращении без указания конкретного имени файла в запросе будет выдан список всех файлов, находящихся в каталоге. Для того чтобы запретить отображение листинга каталога, добавьте в файл .htaccess строку:
9. Включить выполнение CGI-скриптов в папке docs для файлов с расширениями .cgi, .pl. .py
В папке c CGI-скриптами необходимо разместить файл .htaccess с содержимым:
AddHandler cgi-script .cgi .pl .py
Options +ExecCGI
Скрипт должен иметь атрибут исполнения (+x, права доступа, начинающиеся с 7, например, 755).
Атрибуты (права доступа) можно изменить с помощью файлового менеджера панели управления, при помощи вашего FTP-клиента или по SSH . Также в разделе Веб-сервер → Управление модулями должен быть включен модуль CGI.
10. Блокировка переходов со сторонних ресурсов
Если требуется запретить переходы с нескольких доменов, то используйте следующие директивы
В файле .htaccess использование кириллицы не допускается. При составлении правил перенаправления для кириллических доменов необходимо указывать имя домена в punycode. Узнать имя домена в punycode можно с помощью сервиса Whois.
В этом случае ваши посетители могут увидеть именно punycode-представление доменного имени в адресной строке браузера. Это не является ошибкой.
Для работы перенаправления на сайте должен быть установлен действительный SSL-сертификат.
6. Блокирование запросов от определенных агентов
Если в вашем журнале имеются записи о действиях определенных агентов пользователей (роботов или пауков), которые вам не нравятся, то можно добавить несколько строк в файл .htaccess и запретить таким агентам доступ к вашему сайту:
Замените badbot1 , badbot1 и так далее именами агентов из вашего журнала. Такое действие будет держать данные программы подальше от вашего сайта.
5 последних уроков рубрики "Для сайта"
Эффекты блочного раскрытия
Сегодня мы хотели бы поделиться несколькими идеями касающегося эффекта блочного раскрытия, которую вы можете использовать для своих проектов.
15 полезных .htaccess сниппета для сайта на WordPress
Если вы хотите существенно повысить уровень безопасности вашего сайта на WordPress, то вам не избежать конфигурации файла .htaccess. Это позволит не только уберечься от целого ряда хакерских атак, но и организовать перенаправления, а также решить задачи связанные с кэшем.
20 бесплатных тем для WordPress в стиле Material Design
Material Design — это набирающий обороты тренд от Google. В данной подборке собраны бесплатные темы для WordPress, выполненные в этом популярном стиле.
20 сайтов с креативным MouseOver эффектом
Эффекты на то и существуют чтобы впечатлять наших посетителей. В этой подборке собрано несколько десятков ресурсов, чьи создатели очень постарались впечатлить своих посетителей.
45+ бесплатных материалов для веб дизайнеров за август 2016
Под конец месяца предлагаем ознакомиться с набором бесплатных материалов для веб дизайнеров за прошедший месяц.
Это перевод очень интересной лично для меня статьи, которым я хочу поделиться с уважаемым хабрасообществом. Некоторые из приведенных рецептов я уже встречал на Хабре, но разрозненно и далеко не все из нижеприведенного.
О предназначении файла .htaccess знает каждый веб-разработчик. На базовом уровне он позволяет управлять доступом к каталогам сайта. Но добавляя в него различные дополнительные фрагменты кода, с ним можно сделать и много других интересных вещей.
Если же вам нужны базовые сведения о предназначении данного файла, то вы можете получить из нашей статьи введение в .htaccess (перевод данной статьи не делал, так как там основы, их достаточно в русскоязычном сегменте Сети, но если будет проявлен интерес, то можно и ее перевести для полноты картины — прим. переводчика), в которой достаточно подробно раскрыты все аспекты его применения.
Итак, полезные примеры использования. htaccess:
1. Управление доступом к файлам и каталогам
Защита паролем — это одно, но иногда может понадобиться полностью блокировать доступ пользователей к определенному файлу или папке. Обычно это относится к системным папкам, таким, например, как includes, доступ к которым должны иметь приложения, но не пользователи.
Чтобы сделать это, поместите данный код в файл. htaccess и сохраните его в каталоге к которому закрываете доступ:
Однако учитывайте, что доступ будет блокирован для всех пользователей, включая и вас. Открыть доступ для конкретного пользователя можно прописав его IP-адрес. Вот код, который для этого потребуется:
где xxx. xxx. xxx. xxx — это ваш IP. Для задания разрешенных диапазонов IP-адресов вы можете заменить три последние цифры. Например, написав вместо них «0/12», вы зададите диапазон IP-адресов одной сети, что избавит вас от необходимости вводить в список все разрешенные IP-адреса отдельно.
Если вы хотите заблокировать доступ к определенному файлу, включая сам. htaccess, используйте следующий фрагмент кода:
Если вы хотите указать определенные IP-адреса которым надо запретить доступ, перечислите их при помощи allow from.
Если же вы хотите заблокировать доступ к файлам определенного типа, используйте этот код:
2. Запрет на просмотр директорий
Для предотвращения просмотра директорий сайта добавьте в .htaccess следующий код:
Если же по какой-то причине вы хотите разрешить просмотр всех директорий, используйте код:
3. Ускорение времени загрузки за счет сжатия файлов
Сжимать можно файлы любого типа. Например, для сжатия HTML-файлов добавьте код:
Для сжатия текстовых файлов используйте:
Вы также можете сжать JavaScript или включить сжатие для других различных типов файлов командами:
Кроме того, вы можете сжать все ваши JavaScript, HTML и CSS файлы при помощи GZIP. Для этого используйте следующий код:
4. Защита сайта от вставки изображений с других ресурсов
Если вы хотите запретить добавление ссылок на изображения со сторонних ресурсов, добавьте в файл .htaccess код:
5. Блокировка посетителей, перешедших с определенного домена
Если вы не хотите видеть на своем сайте пользователей с конкретного домена, то вы можете запретить им доступ. Например, пользователей с нежелательных ресурсов (сайты для взрослых, хакерские сайты и т. д.) вы можете перенаправлять на страницу 403 Forbidden. Для этого необходимо включить mod_rewrite, хотя, как правило, он включен по умолчанию. Добавьте в .htaccess код:
6. Блокирование запросов от определенных браузеров
Если в ваших файлах журналов появились записи о посещении особых браузеров (это могут быть имитирующие работу браузера боты или пауки), вы можете запретить им доступ на свой сайт, добавив несколько строк в. htaccess:
Замените badbot1, badbot1 и т. д. именами ботов из вашего журнала. Это закроет посторонним программам доступ к вашему сайту.
7. Кэширование файлов
Кэширование файлов — еще один способ ускорить загрузку вашего сайта. Вот то, что вам нужно прописать в .htaccess:
Вы можете добавить больше типов файлов (или удалить некоторые из них) в перечисленныq в данном примере список файлов. Вы также можете указать время сохранения файлов в кэше (в секундах) при помощи переменной max-age.
8. Отключение кэширования для разных типов файлов
Если вы не хотите кэшировать определенные типы файлов, можно не включать их в список. Однако иногда файлы могут сохраняться в кэше даже не будучи явно перечисленными в списке, в этом случае вы можете отключить кэширование для них индивидуально. Чаще всего отключать кэширование требуется для динамических файлов, таких как сценарии. Пример требуемого для этого кода:
Просто укажите типы файлов, для которых нужно отключить кэширование.
9. Обход диалога загрузки
По умолчанию при попытке загрузить файл с веб-сервера отображается диалог, который спрашивает вас, хотите ли вы сохранить файл или открыть его. Этот диалог особенно раздражает при скачивании больших медиа- или PDF-файлов. Если файлы, которые вы загрузили на сервер, предназначены исключительно для скачивания, вы можете облегчить жизнь пользователей, установив загрузку действием по умолчанию. Добавьте в. htaccess следующее:
10. Переименование файла .htaccess
Если вы по каким-то причинам хотите переименовать файл .htaccess, то вы можете это сделать. Теоретически, переименование файла .htaccess не должно вызывать проблем с приложениями, запущенными на вашем сервере, но если вы заметите появление ошибок выполнения сценариев после переименования файла, то просто переименуйте его обратно.
Кроме того, необходимо обновить все записи, в которых упоминается файл .htaccess, иначе возникнет множество ошибок.
11. Замена стартовой страницы сайта
Если вы хотите установить главную страницу, отличную от стандартной (index.html, index.php, index.htm и т. д.), добавьте следующий код в файл .htaccess:
Замените mypage.html на URL страницы, которую вы хотите использовать в качестве главной.
13. Ограничение максимального размера загружаемых файлов в PHP, максимального размера передаваемых данных, максимального времени выполнения скриптов и т.п.
.htaccess позволяет устанавливать некоторые значения, непосредственно влияющие на работу PHP приложений. Например, если вы хотите установить в PHP ограничение на размер загружаемых файлов, чтобы не забивать хостинг большими файлами:
Вы можете установить любое значение, в примере размер файла ограничен 15M (MБ). Помимо этого вы можете ограничить максимальный размер передаваемых при загрузке в PHP данных:
Вы можете заменить 10М на любое требуемое вам значение. Если вам не требуется постоянное выполнение скриптов, вы можете ограничить время их выполнения с помощью строки:
240 — время выполнения (в секундах), после которого скрипт будет остановлен, вы можете изменить это значение на любое другое. Наконец, если вы хотите ограничить время анализа скриптом исходных данных, используйте следующий код:
Установите вместо 180 любое требуемое вам время (в секундах).
14. Скрытие типов файлов
Иногда нужно, чтобы пользователи не знали, какие типы файлов находятся на вашем сайте. Один из способов скрыть эту информацию — сделать так, чтобы все ваши файлы отображались как HTML или PHP файлы:
И это лишь часть того, что может .htaccess, а вообще он позволяет сделать гораздо больше. Например, вы можете установить автоматический перевод страниц вашего сайта, установить часовой пояс сервера, удалить WWW из URL-адресов или использовать причудливые представления каталогов и т.д. Но в любом случае, прежде чем начинать эксперименты с файлом .htaccess, всегда сохраняйте резервную копию оригинального .htaccess, чтобы при возникновении проблем можно было быстро восстановить работу сайта.
UPD (спасибо akuma) расширение РНР для скрытия формата файлов приведено как пример и использование этого трюка в реальном проекте может оказаться небезопасным
В этой статье мы рассмотрим тему .htaccess: как создать этот конфигурационный файл, для чего он нужен и как с его помощью управлять редиректами, правами доступа и другими настройками.
Читайте также: