.htaccess примеры
Меняем параметры и разрешения работы веб-сервера, такие как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла.
Для чего служит .htaccess? |
Набирая адрес в строке браузера, вы получаете на свой компьютер файлы, которые отображает браузер. Управление тем, какие файлы и как вам показывать (пересылать) осуществляет веб-сервер. Наиболее популярных серверов два: IIS и Apache. Этот файл не доступен веб-пользователю из браузера. Если файл .htaccess расположен в корневой директории сервера, то его действия распространяется на весь сервер, кроме тех папок, где находится другой файл .htaccess (и кроме всех папок «ниже» этой папки со вторым .htaccess). Пример: Структура ваших директорий на сервере такая: |-user | | | -user1 | | | -user2 | |-data | | | -data1 | | | -data2 | Директории user1 и user2 будут вложенными по отношению к директории user. Если мы поместим в директорию www файл . В директорию data помещаем другой файл .htaccess, по-сравнению, с тем, что находится в директории user. И для директорий data1 и data2 будет действовать файл .htacсess, находящийся в data. Теперь, в директорию user2 мы помещаем еще один файл .htaccess, который отличен от того, что находится в директории 2мя уровнями выше (это директория user). В итоге, настройки для директории user2 будут определяться только тем файлом .htaccess, который находится в этой директории. Так как чаще всего Апач настроен так, что всегда ищет этот файл в директории, то .htaccess поможет вам быстро и без останова сервера произвести его перенастройку. |
Синтаксис .htaccess |
Вот обязательной синтаксис, несоблюдение которого приводит к ошибкам сервера: ![]() — домены с указанием протокола Пример: Redirect / http://www.site.ru Файл имеет название именно «точка» htaccess |
Как запретить веб-посетителям читать файлы в директории? |
Запрет на все файлы: Разрешить доступ с определенного ip: Например: order allow deny Запретить доступ с определенного ip: В зависимости от того в каком порядке указаны директивы меняется логика работы сервера. В случае если Deny,Allow то запрещается доступ со всех IP кроме оговоренных, в случае если Allow,Deny разрешается доступ со всех IP кроме оговоренных. Далее должны идти секции описания для доступа и запрета. Ключевое слово all означает со всех IP Например мы хотим запретить (блокировать) доступ с IP 81.222.144.12 и 81.222.144.20 и разрешить всем остальным нам необходимо добавить в Order Allow,Deny Для обратной ситуации когда мы хотим запретить доступ со всех IP кроме 81.222.144.12 и 81.222.144.20 нам необходимо добавить в .htaccess следующий код: Order Deny,Allow Чтобы разрешить только в частности хостов или групп хостов для доступа к серверу, хост может быть указан в любом из следующих форматов:
Запрет на группу файлов по маске: В данном примере сам веб-сервер Апач может обращаться к файлам с таким расширениям. Запрет на конкретный файл: <Files config.inc.php> В данном примере стоит запрет на обращения к файлу config.inc.php.Пароль на директорию: Например в директории, которую защищаем паролем создаем такой .htaccess: Пароль только на 1 файл:сайт источник http://yapro.ru Tue Feb 09 2010 15:44:59 GMT+0300 Пароль на группу файлов: AuthName «Users zone» AuthType Basic AuthUserFile /pub/home/твой_логин/.htpasswd </Files> |
Проверка прав доступа |
Задача: есть каталог a1 и в нем два вложенных каталога a2, a3, введено 2 уровня пользователей. файл .htaccess для каталога а1: Перенаправление посетителя при запросе определенных страниц: redirect /scripts http://www.microsoft.com |
Как сделать стартовой другую страницу? |
Что бы поменять страницу, которая будет показываться при обращении к директории, пишем: |
Как заставить Апач обрабатывать SSI директивы? |
SSI позволяют «собирать» страницу из кусочков. В одном кусочке у вас код меню, в другом код верхней части страницы, в третьем — нижней. А посетитель видет обычную страницу, которая состоит из того кода, который входит в ваши кусочки. После, в файле .htaccess пишем: |
Как заставить Апач выполнять в html документах php код? |
Иногда бывает полезно «обмануть» посетителя, выдавая ему свои php-скрипты или иные файлы, как html файлы. Реально используется для индексации поисковой системой Rambler php-скриптов. Некоторые делаю мелкие фишки, вроде того, что дают фалам расширения совпадающие с какими-либо «знаковыми» именами. |
Как самому обрабатывать ошибки Апача? |
Наиболее интересные и полезные ошибки Апача это: 403-404, 500. Удобно делать собственный обработчик на некоторые ошибки. |
Как поставить запрет на отображение содержимого директории при отсутствии индексного файла? |
Предположим, что у вас вся графика, используемая на сайте находится в директории img. Посетитель может набрать в адресной строке браузера эту директорию и увидеть список всех ваших графических файлов. Конечно, это не нанесет вам урона, но можно и не дать такого просмотра посетителю. Options -Indexes |
Можно ли указать кодировку на все файлы, в которой по умолчанию получает документы браузер? |
На заре интернета и зарождения браузеров, часто была ситуация, что браузер не мог автоматически определить, в какой из русских кодировок написан документ и в браузер выдавалась какая-то каша. Для избежания этого указываем, что все отдаваемые страницы будут иметь кодировку windows-1251: |
Можно ли указать кодировку на загружаемые файлы? |
При загрузке посетителем файла на сервер, возможна перекодировка его — указываем, что все получаемые файлы будут иметь кодировку windows-1251: |
Создал файл .htaccess, но сервер выдает 500 ошибку — Internal Erorr |
Ошибка синтаксиса или файл записан не в том формате. |
Правильный htaccess настройка и примеры. Для чего нужен .htaccess?
Настройка htaccess, файла дополнительной конфигурации сервера, очень важна при работе с сайтом. Часто возникают вопросы: «что такое правильный htaccess?» или «как сделать 301 редирект htaccess?». Здесь мы разберемся в элементарных вопросах про работу с файлом конфигурации .htaccess, для чего нужен htaccess, 301 редирект и т.д.
Что такое .htaccess и для чего нужен?
Для начала стоит сказать пару слов о том, что такое веб-сервер, и как устроена его работа. Веб-сервер — (условно) это компьютер, на котором установленное специальное ПО, которое позволяет запускать и настраивать ваш сайт или веб-приложение для публикации в интернете. Короче говоря, с веб-сервером ваш сайт будет доступен по протоколам http и https. Самыми распространенными ПО для веб-серверов являются Apache и Nginx. Они бесплатные, и любой может поставить их у себя на компьютере и запустить.
Htaccess где находится?
Расположен этот файл обычно в корневом каталоге вашего сайта. Т.е. та папка, в которой лежит сайт. Если его там нет, создайте его, или задайте вопрос в техподдержку хостинга о том, какие правила применяются конкретно у них для изменений конфигурации сервера.
Исправления в него вносятся как в любой текстовый документ. Если вы уже вносили когда-либо изменения в файлы прямо в файлах на хостинге, то у вас не должно возникнуть с этим проблем.
Для чего нужен htaccess?
Настройка веб-сервера производится через файлы конфигурации, которые хранятся в виде текстовых файлов в папках среди файлов веб-сервера. Например, основными для настройки файлами являются httpd.conf или apache.conf, в зависимости от настройки ОС.
Как вы понимаете, доступ к файлу конфигурации есть далеко не у всех пользователей веб-сервера. А зачастую, если мы говорим про виртуальный сервер, то и вообще ограничен только администраторами хостинга. Поэтому придумано было для внесения локальных изменений для каждого ресурса (сайта) использовать файл . htaccess.
Файл .htaccess позволяет вносить изменения в некоторые настройки сервера, но не глобально, а локально для вашего конкретного сайта. Применяется он преимущественно для виртуальных серверов, где расположено не 1, а множество разных ресурсов. Данное имя .htaccess принято условно во всем мире, но не является обязательным. Имя такого конфиг-файла может быть и .config или любое другое.
Самые полезные настройки htaccess
Рассмотрим базовые настройки для файла конфигурации веб-сервера Apache. Для Ningx это может не работать. Следует уточнять у хостинга, что за веб-сервер они вам предоставляют.
301 редирект htaccess
Самый частый вопрос при работе с веб-сервером — как прописать 301 редирект в htaccess?
Помните, что настройки, связанные с редиректом пишутся тут:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
…
</IfModule>
Поэтому, либо найдите эти строчки у себя, либо же сделайте их сами. Итак, запись для 301 редиректа (это безопасный перманентный редирект со страницы на страницу):
Redirect 301 /catalog/old-page/ /catalog/new-page/
Если мы хотим направить весь каталог на сайте в новое место:
Redirect 301 /old-catalog/ /new-catalog/
— в этом случае вы перенаправляете и все внутренние страницы каталога туда же. Не забудьте, что названия страниц при этом остаются старые.
Отметим еще один важный момент, связанный с переносом каталогов. Если вы переносите не только общую страницу каталога «/catalog/», но и подстраницы вручную, то вам следует помнить о том, что файл .htaccess читается сверху вниз!
То есть, если вы сделали редирект так:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
Redirect 301 /old-catalog/ /new-catalog/
Redirect 301 /old-catalog/old-page-1 /new-catalog/new-page-2
</IfModule>
то при открытии страницы https://mysite.ru/old-catalog/old-page-1, вы получите ошибку, что страница недоступна. Это связано с тем, что он сначала произведет перенаправление на страницу /old-catalog/, так как она стоит выше в конфиг-файле. И потом при попытке открыть подстраницу возникнет ошибка. Это часто бывает, когда мы меняем имена своим страницам на новые.
Правильно в данном случае будет делать запись от самой последней страницы и выше до каталога. Тогда все будет перенаправлять верно. Вот так:
Redirect 301 /old-catalog/old-page-1 /new-catalog/new-page-2
Redirect 301 /old-catalog/ /new-catalog/
htaccess редирект на https
Редирект с http на https через htaccess редко сейчас является необходимостью на современных хостингах. Обычно хостинг предоставляет возможность делать это автоматически или дает такую функцию. Пример:
Но, если подобная функция нужна, то делается это с помощью RewriteCond:
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
или
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(. (.*)$ http://www.newsite.ru/$1 [R=301,L]
Запретить доступ к директории
Запретить доступ к директории сайта через htaccess, находящийся в корне сайта проблематично. Для этого нужно создать файл .htaccess внутри этой директории с текстом:
Deny from all
ErrorDocument 403 «Данный раздел находится в разработке»
В этом случае пользователь, вошедший туда, будет видеть эту надпись на белом экране.
Если у вас CMS (Битрикс, WordPress и т.д.), то просто создайте папку с точным названием этого раздела и создайте htaccess там. Данный способ отлично подходит для разделов второго уровня (вида «site.ru/catalog/»). Во всех остальных случаях советуем вам использовать внутренние средства самой CMS. В 99% случаев там можно просто взять и выключить любой каталог и страницы в нем.
Запретить доступ к файлу
Запретить доступ к конкретному файлу:
<Files «myfile.php»>
Deny From All
</Files>
Запретить доступ к разным типам файлов:
<FilesMatch «\. index.php$ https://site.ru [R=301,L]
Помните, что для работы этих настроек требуется в первую очередь Apache или доступ к его конфигурации на сервере. Иначе вам придется спрашивать у техподдержки хостинга, как вам поступать в той или иной ситуации. Не все команды здесь одинаково полезны. Бывает и так, что и хорошие хостинг-провайдеры частично открывают настройки для сервера, закрывая большинство полезных из них. Для этого в первую очередь советуем вам написать в техподдержку свои вопросы, если что-то не получается. Многие проблемы, описанные выше, решаются плагинами в WordPress, к примеру.
Удачи вам в постижении .htaccess!
примеры .htaccess · GitHub
9(.
#Не копировать и вставлять весь файл, найти только интересные части! | |
#HTTP-аутентификация | |
Тип аутентификации Базовый | |
AuthName «Войти» | |
AuthUserFile /path/to/.![]() | |
Требовать действительного пользователя | |
#Заголовки безопасности | |
| |
Набор заголовков X-XSS-защита «1; режим = блок» | |
Набор заголовков X-Frame-Options SAMEORIGIN | |
Набор заголовков X-Content-Type-Options nosniff | |
Набор заголовков Strict-Transport-Security «max-age=15768000;» env=HTTPS | |
#Expires Заголовки — статические файлы | |
| |
| |
ExpiresActive на | |
ExpiresDefault «доступ плюс 365 дней» | |
#Управление кешем — статические файлы | |
| |
| |
Набор заголовков Cache-Control «max-age=31536000, public» | |
#Gzip | |
| |
AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/javascript 9(xmlrpc\.php)»> | |
запретить заказ, разрешить | |
запретить все | |
#JetPack + другие сети Automattic | |
разрешить от 76.74.254.0/25 | |
разрешить от 216.151.209.64/26 | |
разрешить от 66.135.48.128/25 | |
разрешить от 69.174.248.128/25 | |
разрешить от 76.![]() | |
разрешить от 216.151.210.0/25 | |
разрешить от 76.74.248.128/25 | |
разрешить от 207.198.112.0/23 | |
разрешить от 207.198.101.0/25 | |
разрешить от 198.181.116.0/24 | |
разрешить от 192.0.64.0/18 | |
разрешить от 66.155.38.0/24 | |
разрешить от 209.15.21.0/24 | |
разрешить от 64.34.206.0/24 | |
#WP — разрешать wp-login.![]() | |
<Файлы wp-login.php> | |
запретить заказ, разрешить | |
разрешить от x.x.x.x | |
отказать от всех | |
#WP — заблокировать весь wp-admin — .htaccess в этой папке | |
запретить заказ, разрешить | |
разрешить от x.x.x.x | |
отказать от всех | |
<Файлы admin-ajax.![]() | |
заказ разрешить, запретить | |
разрешить от всех | |
удовлетворить любой | |
<Файлы admin-post.php> | |
заказ разрешить, запретить | |
разрешить от всех | |
удовлетворить любой | |
#WP — блокировать PHP при загрузке 1-й способ — .htaccess в /wp-content/uploads/ | |
| |
заказ разрешить, запретить | |
запретить все | |
# Вставить правила перезаписи после директивы «RewriteEngine on» | |
9(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,NE,R=301] | |
Заголовок #CSP — предотвращение смешанного содержимого | |
| |
Набор заголовков Content-Security-Policy «upgrade-insecure-requests;» | |
# разрешить страну с mod_geoip 2-й вариант | |
| |
GeoIPEnable На | |
SetEnvIf GEOIP_COUNTRY_CODE CZ AllowCountry | |
SetEnvIf GEOIP_COUNTRY_CODE SK AllowCountry | |
запретить все | |
разрешить из env=AllowCountry | |
#заблокировать страну с mod_geoip 2 вариант | |
| |
GeoIPEnable На | |
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry | |
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry | |
запретить из env=BlockCountry | |
##пример — разрешить wp-admin только из CZ/SK — .htaccess в папке /wp-admin | |
#GeoIPEnable На | |
#SetEnvIf GEOIP_COUNTRY_CODE CZ AllowCountry | |
#SetEnvIf GEOIP_COUNTRY_CODE SK AllowCountry | |
#запретить заказ, разрешить | |
#разрешить из env=AllowCountry | |
#запретить все | |
#<Файлы admin-ajax.![]() | |
# Разрешить заказ, запретить | |
# разрешить от всех | |
# удовлетворить любой | |
# | |
#<Файлы admin-post.php> | |
# Разрешить заказ, запретить | |
# разрешить от всех | |
# удовлетворить любой | |
# | |
# 301 редирект | |
Перенаправление 301 /старый-url/новый-url | |
#multirule https + www перенаправление — вариант example.![]() | |
RewriteCond %{HTTPS} !на | |
RewriteCond %{HTTP:X-Forwarded-Proto} !=https | |
Как найти и создать файл WordPress .htaccess
Вордпресс Эксперт
28 февраля 2023 г.
Домантас Г.
5 минут Чтение
Когда вы устанавливаете WordPress на свою учетную запись хостинга, программное обеспечение добавляет список каталогов на ваш веб-сервер. От wp-admin , в котором хранятся административные файлы, до каталога wp-content , где хранятся темы и плагины — они поддерживают работу ваших страниц.
Помимо основных каталогов, WordPress также поставляется с файлом .htaccess . Короче говоря, это файл конфигурации, который контролирует работу вашего сервера. Файл поддерживается только несколькими веб-серверами, включая Apache.
Если ваш веб-сайт размещен на веб-сервере Apache и вы хотите использовать файл .htaccess , эта статья для вас. Мы предоставим вам подробную информацию об этом файле конфигурации и информацию о том, как найти его и полностью создать новый файл.
Что такое файл .htaccess
.htaccess (гипертекстовый доступ) — это важный файл ядра WordPress, используемый для включения или отключения функций веб-сайтов, размещенных на Apache. Файлы .htaccess также называются файлами конфигурации сервера, расположенными в корневом каталоге WordPress. По умолчанию WordPress использует файлы .htaccess для управления перенаправлениями и структурами постоянных ссылок.
Многие плагины WordPress также используют файлы .htaccess для работы, включая большинство плагинов безопасности и плагинов кэширования. Эти плагины модифицируют и переписывают .htaccess файлы для выполнения своих функций.
Файл .htaccess позволяет выполнять изменения конфигурации для каждого каталога, от изменения страницы индекса по умолчанию до изменения часового пояса вашего веб-сайта. Более сложные изменения конфигурации сервера включают в себя возможность:
- Настроить перенаправления — вы можете установить перенаправление 302 на свой временный домен или перенаправление 301 для перемещения всего HTTP-трафика на ваш HTTPS-сайт.
- Перезаписать URL-адрес — создавайте SEO-дружественные URL-адреса, чтобы улучшить индексацию поисковыми системами и возможности сканирования.
- Включить защиту от хотлинков — файл .htaccess позволяет предотвратить хотлинкинг с вашего сайта и защитить использование полосы пропускания.
- Изменить ограничение доступа — запретить определенным IP-адресам доступ к вашему сайту, сделать файлы определенного типа недоступными или полностью ограничить доступ к вашему сайту.
- Подавать настраиваемые страницы ошибок — настроить сообщение, которое появляется на вашем 404 ошибка не найдено страниц.
- Защищать паролем каталоги — приказать каждому каталогу требовать действительного пользователя, установив пароль и создав файл .htpasswd .
Получите доступ к этой бесплатной странице генератора .htaccess , чтобы создать фрагменты кода и настроить более сложные правила на своем сайте.
Как найти файл .htaccess
Когда вы устанавливаете WordPress на веб-сервере Apache, файл .htaccess автоматически добавляется в ваш корневой каталог, обычно помечаемый как public_html или www . Однако, поскольку файл обычно скрыт, вам нужно будет использовать параметр Показать скрытые файлы , чтобы найти его.
В следующих разделах вы узнаете, как найти файл . htaccess вашего сайта WordPress как в hPanel, так и в cPanel Hostinger.
hPanel
Вот как найти и отредактировать файл .htaccess с помощью файлового менеджера Hostinger:
- Получите доступ к панели управления hPanel. Перейти к Файлы меню и нажмите Диспетчер файлов .
- По умолчанию файл .htaccess не скрыт в hPanel. Таким образом, просто нажмите на каталог public_html и найдите файл, помеченный как .htaccess .
- Чтобы получить доступ к файлу и его содержимому, щелкните правой кнопкой мыши и выберите Открыть или Редактировать .
cPanel
Если вы используете cPanel, процесс более или менее похож:
- Войдите в свою учетную запись cPanel. Найдите раздел Files и нажмите File Manager .
- Доступ к каталогу public_html . Нажмите на папку WordPress. В данном случае он помечен как wp . Затем найдите файл .htaccess .
- Если вы не можете найти файл .htaccess , перейдите к настройкам в правом верхнем меню и установите флажок Показать скрытые файлы , чтобы включить просмотр.
- Система начнет извлекать содержимое ваших каталогов, и вскоре вы увидите файл .htaccess в списке.
- Просто нажмите на файл и нажмите кнопку Изменить , чтобы открыть его.
Теперь, когда вы нашли файл .htaccess , вы можете начать его редактирование. Начните добавлять фрагменты кода выше или ниже существующего кода, чтобы улучшить функциональность вашего сайта WordPress. Однако, прежде чем делать какие-либо настройки, стоит обратить внимание на несколько факторов:
- Если у вас есть более одного домена в вашем хостинг-плане, каждый домен будет иметь свой собственный файл .
htaccess в своем каталоге public_html .
- Поскольку .htaccess — это файл конфигурации сервера, испорченный код может привести к ошибкам сервера.
- Настоятельно рекомендуется создать резервную копию. Таким образом, вы можете восстановить свой сайт WordPress до стабильного состояния всякий раз, когда происходит ошибка.
Как создать файл .htaccess
В некоторых случаях установка WordPress не включает файл .htaccess по умолчанию. Кроме того, сломанный плагин может повредить этот файл конфигурации сервера и нарушить работу вашего сайта. В этих случаях вам нужно будет вручную создать новый файл в панели управления хостингом.
Пользователи hPanel найдут кнопку New File в правом верхнем углу страницы File Manager .
Если вы используете cPanel, выберите 9index.php$ — [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Правило перезаписи. /index.php [Л] # END WordPress
После добавления кода нажмите Создать , чтобы сохранить изменения. Имейте в виду, что код универсален для всех сайтов WordPress. Однако другие системы управления контентом (CMS) будут иметь другой код для файлов .htaccess .
Помимо описанного выше метода, вы также можете использовать текстовый редактор, например Блокнот , чтобы создать файл .htaccess , а затем загрузить его на свой веб-сервер с помощью FTP-клиента.
Заключение
Файл .htaccess представляет собой документ конфигурации для использования на веб-сайтах, работающих на веб-сервере Apache. Этот файл играет важную роль в обеспечении доступности вашего сайта. Он определяет, как сервер работает и функционирует.
Каждая установка WordPress будет включать файл .htaccess , к которому вы можете получить доступ через панель управления хостингом или FTP-клиент. Когда вы размещаете несколько сайтов, ваш веб-сервер также будет иметь несколько файлов .htaccess .
Полностью используя файлы .htaccess , вы можете выполнять различные изменения конфигурации для каждого каталога. Это включает в себя занесение в черный или белый список определенных IP-адресов, перенаправление трафика с HTTP на HTTPS и настройку пароля для каждого каталога.
В этом руководстве вы узнали, как найти файлы .htaccess на вашем сервере. Если файлы .htaccess по какой-либо причине отсутствуют, вам необходимо создать их вручную и загрузить на свой сервер. Просто создайте новый файл в каталоге public_html, пометьте его как 9.1020 .htaccess и введите код по умолчанию.
Попробуйте, и если у вас возникнут дополнительные вопросы, оставьте их в комментариях ниже.
Узнайте о других экспертных методах WordPress
WordPress Multisite
WordPress без заголовка
WordPress REST API Tutorial
Как использовать Xampp
Что такое WordPress Heartbeat
Как стать разработчиком WordPress
Лучшие платформы WordPress
Как выполнить поиск и замену в WordPress база данных
Часто задаваемые вопросы о WordPress .
