12 самых полезных хитростей с .htaccess для WordPress
Вы ищете некоторые полезные трюки .htaccess для вашего WordPress сайта. Файл .htaccess представляет собой мощный конфигурационный файл, который позволяет сделать много аккуратных вещей на своем сайте. В этой статье мы покажем вам некоторые из самых полезных трюков .htaccess для WordPress, которые вы можете попробовать прямо сейчас.Что за файл .htaccess и как изменить его?
Файл .htaccess, это файл конфигурации сервера. Он позволяет определить правила для вашего сервера, чтобы следовать вашему сайту.
WordPress использует файл .htaccess для создания SEO дружественной структуры URL. Тем не менее, этот файл может сделать намного больше.
Файл .htaccess расположен в корневой папке WordPress сайта. Вам нужно будет подключиться к веб-сайту с помощью FTP – клиент, чтобы изменить его.
Перед редактированием файла .htaccess, важно, загрузить копию файла на свой компьютер в качестве резервного. Вы можете использовать этот файл в случае, если что-нибудь пойдет не так.
Сказав это, давайте рассмотрим некоторые полезные трюки .htaccess для WordPress, которые вы можете попробовать.
1. Защитите свою админку в WordPress
Вы можете использовать .htaccess для защиты вашей админки в WordPress, ограничивая доступ только к выбранным IP-адресам. Просто скопируйте и вставьте этот код в файл .htaccess:
AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "WordPress Admin Access Control" AuthType Basic <LIMIT GET> order deny,allow deny from all # белый лист IP адресов AndreyEx allow from xx.xx.xx.xxx # белый лист IP адресов Дом allow from xx.xx.xx.xxx </LIMIT>
Не забудьте заменить значения хх на собственный IP-адрес. Если вы используете более одного IP-адреса для доступа к Интернету, убедитесь, что вы добавляете их.
Подробные инструкции можно найти в руководстве о том, как ограничить доступ к панели администратора WordPress с помощью .htaccess.
2. Защита паролем папки администратора WordPress
Если доступ к WordPress сайту из нескольких мест, включая Интернет в общественных местах, то ограничение доступа к определенным IP-адресам не может работать для вас.
Вы можете использовать файл .htaccess, чтобы добавить дополнительную защиту пароля на вашу админку в WordPress.
Во- первых, вам нужно создать файл .htpasswds. Вы можете легко создать с помощью этого онлайн – генератора.
Загрузить этот файл .htpasswds за пределами общедоступного каталога или папки /public_html/. Хороший путь будет выглядеть так:
/home/user/.htpasswds/public_html/wp-admin/passwd/
Затем создайте файл .htaccess и загрузить его в каталог /wp-admin/ и затем добавьте следующий код:
AuthName "Admins Only" AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd AuthGroupFile /dev/null AuthType basic require user putyourusernamehere <Files admin-ajax.php> Order allow,deny Allow from all Satisfy any </Files>
Важно:
Не забудьте заменить путь к файлу AuthUserFile на путь файла .htpasswds и добавить имя пользователя.
Подробные инструкции можно найти в руководстве о том, как защитить паролем папку администратора в WordPress.
3. Отключить просмотр каталога
Многие эксперты по безопасности WordPress рекомендуют запрещать просмотр каталогов. При включенном просмотре каталогов, хакеры могут заглянуть в структуру каталогов и файлов вашего сайта, чтобы найти уязвимый файл.
Чтобы отключить просмотр каталогов на вашем сайте, вам необходимо добавить следующую строку в файл .htaccess.
4. Отключить выполнение PHP в некоторых каталогах WordPress
Иногда хакеры могут взломать WordPress сайт и установить бэкдор. Эти бэкдоры файлы часто замаскированы как основные WordPress файлы и помещаются в папку /wp-include/ или /wp-includes/ или /wp-content/uploads/.
Более простой способ улучшить безопасность вашего WordPress является отключение выполнения PHP для некоторых WordPress каталогов.
Вам нужно будет создать пустой файл .htaccess на вашем компьютере, а затем вставить следующий код внутри него.
<Files *.php> deny from all </Files>
Сохраните файл, а затем загрузить его в каталоги /wp-content/uploads/ и /wp-includes/. Для получения дополнительной информации посетите наш учебник о том, как отключить выполнение PHP в определенных каталогах в WordPress.
5. Защита вашего конфигурационного файла wp-config.php в WordPress
Вероятно, самый важный файл в корневом каталоге вашего сайта WordPress является файл wp-config.php. Он содержит информацию о вашей базе данных WordPress и как подключиться к ней.
Чтобы защитить файл wp-config.php от самовольного доступа, просто добавьте этот код в ваш файл .htaccess:
<files wp-config.php> order allow,deny deny from all </files>
6. Установка 301 редирект через файл .htaccess
Использование 301 редиректа это самый SEO дружественный способ рассказать пользователям о том, что содержание переехало в новое место. Если вы хотите правильно управлять 301 редиректом в постах и на основе постов, то проверьте наше руководство о том, как настроить переадресацию в WordPress.
С другой стороны, если вы хотите быстро настроить переадресацию, то все, что вам нужно сделать, это вставить этот код в файле .htaccess.
Redirect 301 /oldurl/ http://www.example.ru/newurl Redirect 301 /category/television/ http://www.example.ru/category/tv/
7. Запрет подозрительных IP-адресов
Вы видите необычно высокие запросы на ваш сайт с определенного IP-адреса? Вы можете легко блокировать эти запросы путем блокирования IP-адреса в файле .htaccess.
Добавьте следующий код в файл .htaccess:
<Limit GET POST> order allow,deny deny from xxx.xxx.xx.x allow from all </Limit>
Не забудьте заменить хх на IP-адрес, который вы хотите заблокировать.
8. Отключить хотлинк на изображение в WordPress с помощью .htaccess
Другие веб-сайты делают непосредственно хотлинкинг изображения с вашего сайта, что может сделать ваш WordPress сайт медленным и превысить лимит пропускной способности. Это не является большой проблемой для большинства небольших сайтов. Однако, если вы используете популярный веб-сайт или веб-сайт с большим количеством фотографий, то это может стать серьезной проблемой.
Вы можете предотвратить хотлинкинг изображения, добавив этот код в ваш файл .htaccess:
#disable hotlinking of images with forbidden or custom image option RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?andreyex.ru [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.ru [NC] RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
Этот код позволяет только изображения, которое будет отображаться, если запрос происходящие из andreyex.ru или Google.ru. Не забудьте заменить andreyex.ru на собственное доменное имя.
Другие способы защитить ваши изображения можно найти в руководстве по способам предотвращения кражи изображений в WordPress.
9. Защита .htaccess от несанкционированного доступа
Как вы уже видели, есть так много вещей, которые можно сделать с помощью файла .htaccess. Из-за власти и контроля, которые он имеет на своем веб-сервере, важно, чтобы защитить его от несанкционированного доступа со стороны хакеров. Просто добавьте следующий код в ваш файл .htaccess:
<files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </files>
10. Увеличение загрузки файлов Размер в WordPress
Существуют различные способы, чтобы увеличить максимальный размер загружаемых файлов в WordPress. Тем не менее, для пользователей на общем хостинге некоторые из этих методов не работают.
Одним из методов, который работал для многих пользователей, добавление следующего кода в файл .htaccess:
php_value upload_max_filesize 64M php_value post_max_size 64M php_value max_execution_time 300 php_value max_input_time 300
Этот код просто говорит вашему веб-серверу, использовать эти значения, чтобы увеличить размер загружаемого файла, а также максимальное время выполнения в WordPress.
11. Запретить доступ к XML-RPC-файл с помощью .htaccess
Каждая установка WordPress поставляется с файлом под названием xmlrpc.php. Этот файл позволяет сторонним приложениям подключаться к WordPress сайту. Большинство экспертов в области безопасности WordPress советуют, что если вы не используете какие-либо сторонние приложения, то вы должны отключить эту функцию.
Есть несколько способов сделать это, один из них, добавив следующий код в файл .htaccess:
# Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all </Files>
12. Блокировать сканы автора в WordPress
Общий метод, используемый в грубых силах, чтобы запустить сканирование автора на WordPress сайте, а затем попытаться взломать пароли для этих имен пользователей.
Вы можете блокировать такие сканы, добавив следующий код в ваш файл .htaccess:
# BEGIN block author scans RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} (author=\d+) [NC] RewriteRule .* - [F] # END block author scans
Мы надеемся, что эта статья помогла вам узнать самые полезные приемы в файле .htaccess для WordPress.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Htaccess Editor — Safely Edit Htaccess File — Плагин для WordPress
WP Htaccess Editor provides a simple, safe & fast way to edit & test the site’s .htaccess file from WP admin. Before saving htaccess can be tested for syntax errors. It also automatically creates a backup every time you make a change to the htaccess file. Backups can be restored directly from the plugin, or via FTP if the errors in .htaccess file prevent WP from running normally. For all questions, including support please use the official forum.
Access WP Htaccess Editor via WP Admin — Settings menu.
Testing Htaccess Syntax
Use the «test before saving» button to test htaccess file syntax before saving. Please note that this test does not check the logic of your htaccess file, ie if the redirects work as intended. It only checks for syntax errors.
Automatic Backups
Htaccess Editor makes automatic backups of htaccess file every time you make a change to it. Backups are located in /wp-content/htaccess-editor-backups/
and timestamped so you can easily find the latest htaccess backup and restore it.
WordPress Network (WPMU) Support
WP Htaccess Editor is fully compatible and tested with WP Network (WPMU). It shows up under the Settings menu in network admin. It’s not available in individual sites as there is only one .htaccess file per network.
The plugin was originally developed by Lukenzi in March of 2011.
- WP Htaccess Editor admin page
- Actions have to be double-confirmed to prevent accidents
Follow the usual routine;
- Open WordPress admin, go to Plugins, click Add New
- Enter «htaccess editor» in search and hit Enter
- Plugin will show up as the first on the list, click «Install Now»
- Activate & open plugin’s settings page located under the Settings menu
Or if needed, upload manually;
- Download the latest stable version from from downloads.wordpress.org/plugin/wp-htaccess-editor.latest-stable.zip
- Unzip it and upload to /wp-content/plugins/
- Open WordPress admin — Plugins and click «Activate» next to «WP Htaccess Editor»
- Open plugin’s admin page located under the Settings menu
- I’ve killed my site! Help!?
Nothing is lost or deleted. You can easily get your site back.
You’re probably getting an error 500 or a white screen (of death). First connect to your site via FTP and locate the .htaccess file. Delete it, or rename it. Try the site again — it should open. If it did locate the backup of the old, working .htaccess file in/wp-content/htaccess-editor-backups/
copy the file to your site’s root folder and you’re back in business.- I get an error saying the .htaccess file can’t be edited or created
Sorry, we can’t change the file access privileges set by your server. You’ll have to edit the file via FTP.
Head over to our support forums. We’ll gladly assist you.
- How do I get support?
Head over to our support forums. We’ll gladly help you.
- Do you support WP-CLI?
Not yet, but we plan to.
«Htaccess Editor — Safely Edit Htaccess File» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
Участникиv1.65
- 2019/08/16
- fixed a few bugs
- new feature: test htaccess file for syntax errors before saving
- 50,000 installations hit on 2019-08-10
v1.60
- 2019/03/12
- fixed a few bugs
- new: editor size is persistent; saved in localStorage
- menu item moved from Tools to Settings
- full WordPress Network (WPMU) compatibility
v1.55
- 2019/01/15
- added code editor resize feature
- fixed a few bugs
- 40k installations hit on 2019-01-09 with 172,000 downloads
v1.50
- 2018/12/21
- WebFactory took over development
- complete plugin rewrite
- 30,000 installations; 162,200 downloads
v1.3.0
- Added Spanish translation (Thanks to Andrew Kurtis from WebHostingHub.com)
- Updated design
- Updated info links
v1.2.0
- Improved code
- Improved design
- Improved security
- Removed debug panel
- Updated translations
- Updated links
- Updated screenshots
- Adding plugin logo
v1.1.1
v1.1.0
- Adding Czech and English language
- Adding debug panel
- Added information about the author and translators
- Fixed vulnerability
- Fixed bug loading translations files
- Optimized for minimum memory requirements
- Small code modifications
v1.0.1
- Adding button for create .htaccess file if not exists
- Fixed bug in the permissions to view the plugin
- Optimized for smaller memory requirements
v1.0.0
- 2011/03/24
- Первая стабильная версия
- Adding to WordPress repository
Защита админ панели WordPress при помощи файла .htaccess
Автор Игорь Градов На чтение 2 мин.
Инструкция, как при помощи простых манипуляций с файлом .htaccess раз и навсегда защитить свой блог от брутфорс атак на админ панель.
При помощи .htaccess можно установить http авторизацию или «двойную авторизазацию» для вашего сайта. Покажу на примере движка WordPress.
Вначале переходим сюда http://www.htaccesstools.com/htpasswd-generator/ и генерируем файл .htpasswd, указывая любые логин и пароль.
Сгенерированный файл помещаем в корень своего сайта.
Далее, в корневом файле .htaccess добавляем следующие строки:
AuthUserFile .htpasswd AuthName "Private access" AuthType Basic <FilesMatch "wp-login.php"> Require valid-user </FilesMatch>
Иногда, на некоторых хостинг провайдерах необходимо в первой строчке указывать полный путь до файла .htpasswd:
AuthUserFile /home/k/lucky/lucky-seo.com/public_html/.htpasswd
Чтобы узнать абсолютный путь от корня сервера нужно создать любой файл .php и вписать туда:
<?php echo $_SERVER['DOCUMENT_ROOT']; ?>
и поместить в файл в корень, затем перейти на него.
Если все сделано правильно, то при переходе в админ панель сайта по адресу /wp-admin или /wp-login.php будет запрашиваться аутентификация:
Запрет по IP
Также, при помощи .htaccess можно запретить доступ к админке wordpress по IP адресу.
Для того, чтобы сделать это, нужно в файл .htaccess, размещенном в корне, добавить специальный код:
<Files "wp-login.php"> Order deny,allow Allow from All Deny from 00.00.00.00 </Files>
Где 00.00.00.00 — это IP адрес, которому вы хотите закрыть доступ к админке.
Но лучше закрыть доступ всем IP, кроме своего (если у вас постоянный IP), тогда код будет таким:
<Files "wp-login.php"> Order deny,allow Deny from All Allow from 00.00.00.00 </Files>
Где вместо 00.00.00.00 — должен быть ваш IP адрес.
В случае, если вы хотите закрыть доступ всем, то нужно убрать строку Allow:
<Files "wp-login.php"> Order deny,allow Deny from All </Files>
Зачем это нужно?
Это самая простая и надежная защита от брутфорс атак на ваш сайт.
Если вы хотите защитить админ панель по максимуму, то дополнительно используйте плагин Сlearfy. Подробнее про плагин я писал в этом посте.
Настройка файла htaccess | Losst
Сейчас для организации работы подавляющего большинства сайтов в сети используется веб-сервер Apache. Он немного отстает в производительности, но зато очень прост в настройке и имеет огромное количество возможностей.
Веб-сервер Apache можно настраивать не только в главном конфигурационном файле, но и через файлы .htaccess. Эти файлы размещаются в определенных папках и указывают веб-серверу как нужно себя вести в этой папке и ее подкаталогах.
Настройка файла htaccess очень похожа на настройку главного файла конфигурации Apache. Но она немного отличается. С помощью этого файла вы можете настроить редиректы, внутреннее изменение url, права доступа, авторизацию по паролю и многое другое. В сегодняшней статье мы рассмотрим как правильно настроить htaccess для вашего сервера.
Содержание статьи:
Синтаксис файла htaccess
Мы уже начали тему настройки Apache в одной из предыдущих статей, но сегодня немного освежим информацию и рассмотрим более детально именно настройку htaccess.
Все директивы из файла htaccess выполняются точно так же, как если бы они были размещены в глобальном конфигурационном файле, только внутри директивы <Directory адрес_папки_htaccess>
Общий синтаксис директив очень прост, это пары команд и их опций, разделенных пробелом, например:
Команда параметр1 параметр2 флаги
Самих команд достаточно много и мы будем рассматривать их на примерах действий, которые они выполняют. Кроме самих команд, тут могут использоваться вложенные структуры, например, для активации модулей или проверки доступности того или иного модуля. А теперь давайте перейдем ближе к тому как выполняется правильная настройка htaccess. Начнем с самых простых действий.
Настройка доступа htaccess
Довольно часто htaccess используется для управления доступом к папке. Для управления доступом используются три команды:
- order — порядок;
- deny — запретить;
- allow — разрешить.
Сначала, с помощью опции order, нужно указать в каком порядке будут выполняться директивы, значение имеет только эта команда, и неважно в какой последовательности они расположены в файле.
Затем с помощью директивы allow или deny мы разрешаем или запрещаем доступ к папке с определенных адресов. Например, чтобы запретить все необходимо добавить в htaccess:
Order deny,allow
Deny from all
Но мы также можем разрешить доступ только с локальной сети:
Order deny,allow
Deny from all
Allow 192.168.0.
Если указано deny,allow, то проверка будет выполняться в таком порядке. Сначала все директивы deny, затем все директивы allow, и если ни одно из условий не подошло, то запрос пропускается.При allow,deny такой запрос будет по умолчанию отклонен. Например, предыдущий пример можно написать так:
Order allow,deny
Allow 192.168.0.
Модификация URL в htaccess
Наиболее часто htaccess используется для модификации URL во время выполнения или редиректов. За эту функциональность отвечает модуль mod_rewrite и обычно он активирован в большинстве конфигураций Apache.
Модификация URL в htacces выполняется с помощью трех директив, это RewriteBase, которая указывает префикс адреса, RewriteCond проверяет соответствие, и RewriteRule — изменяет URL в соответствии с регулярным выражением если все правила соответствия подходят.
Сначала нужно включить Mod_Rewrite, на случай если модуль еще не активен:
RewriteEngine on
Укажем, что в качестве префикса для URL нужно использовать корень:
RewriteBase /
И будем автоматически заменять URL адреса с index.html на index.php, обратите внимание, что исходный URL — это путь к запрашиваемому файлу относительно расположения файла htaccess:
RewriteRule index.html /index.php
Для более эффективной замены можно использовать регулярные выражения они состоят из специальных символов и переменных и обычных символов и цифр. Рассмотрим основные специальные символы:
- ^ — начало строки;
- $ — конец строки;
- . — любой символ;
- * — любое количество любых символов;
- ? — один определенный символ;
- [0-9] — последовательность символов, например, от 0 до 9;
- | — символ или, выбирается или одна группа, или другая;
- () — иcпользуется для выбора групп символов.
В регулярных выражениях htaccess также можно использовать переменные с данными, полученными из заголовков запроса, например:
- %{HTTP_USER_AGENT} — поле User-Agent, которое передает браузер пользователя;
- %{REMOTE_ADDR} — IP адрес пользователя;
- %{REQUEST_URI} — запрашиваемый URI;
- %{QUERY_STRING} — параметры запроса после знака ?.
Это наиболее часто используемые переменные, но их есть намного больше, остальные вы можете найти в официальной документации. Регулярные выражения открывают более широкие возможности, например, вы можете заменять во всех страницах html на php:
RewriteEngine On;
RewriteBase /;
RewriteRule ^(.*)\.html$ $1.php
Директива RewriteCond дает еще больше гибкости, вы можете выбрать к каким адресам стоит применять модификацию, например, будем переопределять данные только для версии с www:
RewriteBase /;
RewriteCond % {HTTP_HOST} ^www.site.ru$
RewriteRule ^(.*)\.html$ $1.php
Таким образом, вы можете выполнять любые преобразования ваших URL без фактических редиректов куда-либо. Но дальше мы рассмотрим как делать редиректы.
Настройка редиректов в htaccess
Настройка редиректов htaccess выполняется похожим образом, с помощью того же самого модуля mod_rewrite, только теперь вместо модификации url мы указываем флаг с нужным действием и кодом редиректа.
Самый простой редирект можно выполнить без mod_rewrite, с помощью такой строки:
Redirect 301 /index.html http://www.site.ru/index.php
Но обычно нужны перенаправления с более широким действием. Все выглядит очень похоже, только теперь мы используем флаг [NC] чтобы не учитывать регистр, [L] для прекращения обработки и [R] — для редиректа. Например, перенаправление htaccess с версии без www на домен с www:
RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
Значение R=301 означает код редиректа, который будет возвращен клиенту, можно использовать 301, 302 и т д. Редирект htaccess с домена www на домен без префикса будет выглядеть так:
RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Таким же образом можно сделать переадресацию:
RewriteRule ^старый_адрес /новый_адрес/$1 [R=301,L]
Редирект с http версии на https:
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]
Настройка страниц ошибок в htaccess
При возникновении каких-либо ошибок во время генерации страницы, веб-сервер выдает краткое сообщение и код ошибки. Но пользователям будет намного понятнее в чем дело, если вы сделаете для каждой ошибки отдельную страницу с картинками и полноценным объяснением.
Настройка htaccess для этого пункта будет очень полезной. Вы можете использовать директиву ErrorDocument. С помощью нее можно задать html страницы для ошибок 4хх и 5хх. Например, для 404:
ErrorDocument 404 http://site.ru/error/404.shtml
ErrorDocument 403 http://site.ru/error/403.shtml
ErrorDocument 401 http://site.ru/error/401.shtml
ErrorDocument 500 http://site.ru/error/500.shtml
Кэширование в htaccess
Браузер позволяет хранить в своем кэше изображения, файлы скриптов, стилей и другие медиафайлы определенное время. Время жизни кэша задается веб-сервером с помощью специальных заголовков. Их можно настроить с помощью модуля expires.
Сначала активируем модуль и устанавливаем период кэширования по умолчанию:
ExpiresActive On
ExpiresDefault "access plus 1 month"
Теперь мы можем настроить кэширование для каждого mime типа файлов:
ExpiresByType text/html "access plus 1 month 15 days 2 hours"
ExpiresByType image/gif "access plus 5 hours 3 minutes"
ExpiresByType image/x-icon "access plus 2592000 seconds"
В первой строке мы указываем, что страницы html нужно считать годными на один месяц 15 дней и два часа с момента загрузки. Доступны такие типы файлов:
- image/x-icon;
- image/jpeg;
- image/png;
- image/gif;
- application/x-shockwave-flash;
- text/css;
- text/javascript;
- application/javascript;
- application/x-javascript;
- text/html;
- application/xhtml+xml;
Чтобы быть уверенным что эта конструкция не вызовет ошибок заключите ее в if:
<ifModule mod_expires.c>
</ifModule>
Сжатие файлов в htaccess
Для сжатия в Apache можно использовать модуль deflate. Здесь достаточно просто перечислить mime типы файлов, которые нужно сжать. Например:
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
Вы также можете заключить конструкцию if, чтобы проверить поддерживается ли этот модуль:
<ifModule mod_deflate.c>
</ifModule>
Выводы
В этой статье мы рассмотрели как выполняется настройка файла htaccess для правильной работы вашего сайта. Все действия выполняются не так уже и сложно. Достаточно скопировать несколько строк и исправить их под свои нужды. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение предлагаю видео с обзором конфигурационного файла Apache: