Htaccess для wordpress


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

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

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

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

Permission Modes # Permission Modes

The permission mode is computed by adding up the following values for the user, the file group, and for everyone else. The diagram shows how.

  • Read 4 – Allowed to read files
  • Write 2 – Allowed to write/modify files
  • eXecute1 – Read/write/delete/modify/directory

Example Permission Modes

Mode Str Perms Explanation
0477 -r–rwxrwx owner has read only (4), other and group has rwx (7)
0677 -rw-rwxrwx owner has rw only(6), other and group has rwx (7)
0444 -r–r–r– all have read only (4)
0666 -rw-rw-rw- all have rw only (6)
0400 -r——– owner has read only(4), group and others have no permission(0)
0600 -rw——- owner has rw only, group and others have no permission
0470 -r–rwx— owner has read only, group has rwx, others have no permission
0407 -r—–rwx owner has read only, other has rwx, group has no permission
0670 -rw-rwx— owner has rw only, group has rwx, others have no permission
0607 -rw—-rwx owner has rw only, group has no permission and others have rwx

Что может делать .htaccess

Файл .htaccess находится в корневой папке сайта. Точка перед названием файла означает, что файл невидим, и вы сможете его видеть если включите настройку «Показывать скрытые файлы».

Отображать скрытые файлы в Filezilla

Файл используется для настройки сервера, типичное применение файла:

  • Включает и отключает редиректы на другие страницы
  • Добавляет пароль на папки
  • Блокирует пользователей по IP
  • Отключает показ содержимого папок
  • Создает и использует собственные страницы для ошибок

В Вордпрессе этот файл используется для создания красивых постоянных ссылок (Настройки — Постоянные ссылки — Общие настройки), и создается автоматически когда эта функция включается.

Если вы уже знаете, для чего нужен этот файл, переходите к .


Хотлинк (hotlink)

SetEnvIfNoCase Referer «^» local_ref=1 SetEnvIfNoCase Referer «^» local_ref=1 <FilesMatch «.(gif|jpg)> Order Allow,Deny Allow from env=local_ref </FilesMatch>

RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^*$ RewriteRule .*\.(gif|jpg)$ — RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !.*/foo-with-gif\.html$ RewriteRule ^inlined-in-foo\.(gif|jpg)$ —

RewriteEngine On #Replace ?mysite\.com/ with your blog url RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ RewriteCond %{HTTP_REFERER} !^$ #Replace /images/nohotlink.jpg with your «don’t hotlink» image url RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg


http-equiv=»Content-Type» content=»text/html;charset=UTF-8″>lass=»plugin-reviews»>

Never had a problem with it. Recent new features make it easier than ever to use!

Loving it. Does all plus extra. Liking, for example how it ‘reminds’ you that you are about to save a regexp without having it checked, which potentially could cost you missing redirects. 404 monitoring is a great tool, saves you install of an additional plugin. Automatic post/page/etc change monitor comes handy as it’s not only creating the redirect, but you can also assign it to a separate group of your choice (eg. autogenerated) to keep track of permalink changes to review later. Haven’t tried export to .htaccess yet but it seems very handy if performance is your thing. Overall, great tool. And donation-based too. Thanks for keeping the good ol’ ways of donating work rather than try-bait of the new age

I love how the plugin automatically adds a redirect if you modify a permalink.

It even walks you through setting that up on install.

This monitoring feature saves me a lot of extra work if I modify URLs. I do this for SEO reasons.

Thanks for an excellent, trusty, time-saving redirection plugin!

A great plugin with many extremely useful features that lets you deal with redirections in clever and helpful ways.

It used not to work with WPML but was so happy to discover that it now (maybe since long?) is compatible with WPML.

I immediately switched from a simpler solution (Safe Redirect Manager) to this. It even imported my existing redirects perfectly.

I would only have liked an option to select multiple redirects and move then to a different redirect group. I had to do it one by one, but I guess you can’t have everything.

I’ll say one of the best plugin. Just wondering if you could add an option like enable/disable certain redirection on a specific date and time. Thank you.

This plugin is the best redirection plugin, also UI is very clean and elegant! It offers testing tool to check the created redirects. I would suggest others to use this plugin instead of other redirection plugins.

What is WordPress .htaccess file?

In most of the cases, when you install WordPress, the .htaccess file comes by default.

However, it stays in hidden mode at the root of your WordPress installation. Sometimes, the .htaccess file is not present, and you have to create the .htaccess file in WordPress manually.

Now, we can use a normal text editor to update or remove the content of our WordPress blog .htaccess file.

Below is the default code for your WordPress htaccess file:

# BEGIN WordPress RewriteRule ^index\.php$ – RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php

# END WordPress

Let us take, for example, a question asked by one of ShoutMeLoud’s readers Kashish.

Q: Hi, I want to edit my Permalink to /%postname? in WordPress, and it says to add some code in my .htaccess.txt file, but I could not find it anywhere in my dashboard or the root directory. How do I create WordPress .htaccess file and add the code into it?

Now, here is how you can solve the problem:

In most WordPress blogs, the .htaccess file resides by default in the root of WordPress installation. If you  use the Filezilla FTP client, you can refer to my post on how to edit your .htaccess file.

All you need to do is click on force showing hidden file, from the options menu, which has been explained earlier.

In case the .htaccess file does not exist, just create a new notepad file (htaccess.txt) and rename it to .htaccess. Make sure that it is not like .htaccess.txt in any way. If you use Windows, you can uncheck the option which says Hide extension for known file types. Once you have renamed the file to .htaccess, upload it to the root of WordPress installation and edit your file according to your need. In case you have a hard time renaming from htaccess.txt to .htaccess, simply upload the htaccess.txt file and rename it on the server.

Sounds simpler now?


Let us further learn how to can edit .htaccess file.

For a better understanding, I’m sharing a quick tutorial on how to edit your WordPress .htaccess file.

There are many methods which you can follow, three of which are mentioned below:

  1. From the cPanel.
  2. From the WordPress dashboard.
  3. Using a desktop FTP client.

Moreover, when you edit your WordPress permalinks, you need to update your .htaccess file. If you are a self-hosted WordPress user, you MUST know about the .htaccess file and how to edit it.

Куда добавлять изменения

Строки, начинающиеся с тега #, являются комментариями и не являются правилами для исполнения .htaccess.

Добавляйте свои комментарии к вашим правилам.

Когда вы добавляете свои правила, добавляйте их выше или ниже стандартных правил Вордпресс.

Не добавляйте и ничего не редактируйте между строками   и . Для мультисайт установок таких комментариев нет, но не добавляйте и не редактируйте ничего в коде для мультисайт установок.

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

Добавляйте свои правила выше или ниже стандартных правил Вордпресс по-одному, пишите к ним комментарии, сохраняйте и проверяйте изменения на сайте.

Если у вас Nginx сервер, здесь вы найдете htaccess — nginx конвертер.

Using the Command Line # Using the Command Line

If you have shell/SSH access to your hosting account, you can use  to change file permissions, which is the preferred method for experienced users. Before you start using  it would be recommended to read some tutorials to make sure you understand what you can achieve with it. Setting incorrect permissions can take your site offline, so please take your time.

  • Unix Permissions

You can make all the files in your  directory writable in two steps, but before making every single file and folder writable you should first try safer alternatives like modifying just the directory. Try each of these commands first and if they don’t work then go recursive, which will make even your themes image files writable. Replace DIR with the folder you want to write in

If those fail to allow you to write, try them all again in order, except this time replace -v with -R, which will recursively change each file located in the folder. If after that you still cant write, you may now try 777.

About Chmod

 is a unix command that means “change mode” on a file. The  flag means to apply the change to every file and directory inside of . 766 is the mode we are changing the directory to, it means that the directory is readable and writable by WordPress and any and all other users on your system. Finally, we have the name of the directory we are going to modify, . If 766 doesn’t work, you can try 777, which makes all files and folders readable, writable, and executable by all users, groups, and processes.

If you use Permalinks you should also change permissions of .htaccess to make sure that WordPress can update it when you change settings such as adding a new page, redirect, category, etc.. which requires updating the .htaccess file when mod_rewrite Permalinks are being used.

  1. Go to the main directory of WordPress
  2. Enter 

NOTE: From a security standpoint, even a small amount of protection is preferable to a world-writeable directory. Start with low permissive settings like 744, working your way up until it works. Only use 777 if necessary, and hopefully only for a temporary amount of time.

SELinux # SELinux

Security Enhanced linux is a kernel security module that provides mechanisms by which processes can be sandboxed into particular contexts. This is of particular use to limit the actions that web pages can perform on other parts of the operating system. Actions that are denied by the security policy are often hard to distinguish from regular file permission errors.

selinux is typically installed on Redhat family distributions (e.g., CentOS, Fedora, Scientific, Amazon and others).

How to determine if selinux is the problem?

If you are on a debian based distribution, you are probably fine.

Run the following command (on rpm based systems);

and to check whether it is the cause of denials of permissions:

One issue that selinux causes is blocking the wp-admin tools from writing out the `.htaccess` file that is required for url rewriting. There are several commands for inspecting this behaviour


You can temporarily disable selinux to determine if it is the cause of the problems;

Finding Secure File Permissions # Finding Secure File Permissions

The .htaccess file is one of the files that is accessed by the owner of the process running the server. So if you set the permissions too low, then your server won’t be able to access the file and will cause an error. Therein lies the method to find the most secure settings. Start too restrictive and increase the permissions until it works.

Example Permission Settings

The following example has a custom compiled php-cgi binary and a custom php.ini file located in the cgi-bin directory for executing php scripts. To prevent the interpreter and php.ini file from being accessed directly in a web browser they are protected with a .htaccess file.

Default Permissions (umask 022)

Secured Permissions

.htaccess permissions

644 > 604 – The bit allowing the group owner of the .htaccess file read permission was removed. 644 is normally required and recommended for .htaccess files.

php.ini permissions

644 > 600 – Previously all groups and all users with access to the server could access the php.ini, even by just requesting it from the site. The tricky thing is that because the php.ini file is only used by the php.cgi, we only needed to make sure the php.cgi process had access. The php.cgi runs as the same user that owns both files, so that single user is now the only user able to access this file.

php.cgi permissions

755 > 711 This file is a compiled php-cgi binary used instead of mod_php or the default vanilla php provided by the hosting company. The default permissions for this file are 755.

php5.cgi permissions

755 > 100 – Because of the setup where the user account is the owner of the process running the php cgi, no other user or group needs access, so we disable all access except execution access. This is interesting because it really works. You can try reading the file, writing to the file, etc. but the only access you have to this file is to run php scripts. And as the owner of the file you can always change the permission modes back again.

Редирект с помощью плагина в WordPress

Самым популярным плагином для работы с редиректами в WordPress является Redirection. Данный плагин насчитывает более двух миллионов скачиваний и полностью совместим с последней версией WordPress.

Плагин Redirection позволяет создавать неограниченное количество редиректов, просматривать статистику по перенаправлениям, а также отслеживать ошибки 404 (не найдено) на сайте WordPress. Redirection также поддерживает регулярные выражения.

В качестве альтернативы можно рассмотреть более новый плагин Safe Redirect Manager от разработчиков из компании 10up. Данный плагин имеет более приятный пользовательский интерфейс, поддерживает регулярные выражения и полностью поддерживает режим Multisite.

Плагин Simple Redirect Manager

Следует также упомянуть плагин Simple 301 Redirects, который является более простым решением для перенаправлений в WordPress. Именно данный плагин мы используем на сайте WP Magazine.

Плагин Simple 301 Redirects

Настройка редиректа с помощью .htaccess

Для внесения изменений в код для данных целей существует ряд директив:

Redirect 301 или RedirectPermanent – перенаправляет конкретные страницы, т.е. в данном случае нужно прописывать правило для каждой страницы отдельно. Например, команда

Redirect 301 /oldpage.html  перенаправляет со старой страницы на новую

RedirectMatch – задает редирект с возможностью использовать регулярные выражения. Например, можно задать новые расширения урлов:

RedirectMatch /(. *)\.php$$1.html

RewriteRule – используют чаще других, задает правила перенаправления.

Разберем смысл некоторых спецсимволов:

  • . – любой символ;
  • * — 0 и больше символов;
  • $ — конец строки;
  • ^ — начало строки;
  • () – переменная.

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

301 редирект с одного домена на другой

Итак, если нам нужно поставить 301 редирект со старого домена на новый домен, прописываем следующее в .htaccess старого сайта:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.old-site\.ru$ 
RewriteRule ^(.*)$$1 
RewriteCond %{HTTP_HOST} ^old-site\.ru$ 
RewriteRule ^(.*)$$1 

При этом в robots.txt старого ресурса нужно прописать:

User-agent: Yandex

301 редирект в .htaccess с index.php на главную

RewriteEngine On
RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ 

Удаляем слэш в конце урла

RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ 
RewriteRule ^(.*)(/)$ $1 

Если вы не знаете, как прописать код для вашего конкретного случая, можно воспользоваться генераторами 301 редиректов. Например,

The dangers of 777 # The dangers of 777

The crux of this permission issue is how your server is configured. The username you use to FTP or SSH into your server is most likely not the username used by the server application itself to serve pages.

Often the Apache server is ‘owned’ by the www-data, dhapache or nobody user accounts. These accounts have a limited amount of access to files on the server, for a very good reason. By setting your personal files and folders owned by your user account to be World-Writable, you are literally making them World Writable. Now the www-data, dhapache and nobody users that run your server, serving pages, executing php interpreters, etc. will have full access to your user account files.

This provides an avenue for someone to gain access to your files by hijacking basically any process on your server, this also includes any other users on your machine. So you should think carefully about modifying permissions on your machine. I’ve never come across anything that needed more than 767, so when you see 777 ask why it’s necessary.

The Worst Outcome

The worst that can happen as a result of using 777 permissions on a folder or even a file, is that if a malicious cracker or entity is able to upload a devious file or modify a current file to execute code, they will have complete control over your blog, including having your database information and password.

Find a Workaround

It is usually pretty easy to have the enhanced features provided by the impressive WordPress plugins available, without having to put yourself at risk. Contact the Plugin author or your server support and request a workaround.

Как создать стандартный файл WordPress .htaccess

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

Шаги ниже покажут как создать файл в Файловом Менеджере Hostinger. Однако последовательность действий не должна особо отличаться от подобных на cPanel. Вы также можете создать файл на вашем компьютере и затем загрузить его с помощью FTP-клиента.

Для создания файла .htaccess с помощью Файлового Менеджера Hostinger, просто перейдите в корневой каталог вашего WordPress сайта. Обычно это каталог public_html. Далее, создайте текстовый файл и назовите его .htaccess.

Откройте файл в любом текстовом редакторе. Файл .htaccess содержит несколько строк кода, который являются стандартными настройками сервера. В WordPress .htaccess должен выглядеть примерно так:

# BEGIN WordPress
RewriteRule ^index\.php$ – 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php 
# END WordPress

Просто скопируйте данный код и вставьте его в созданный файл .htaccess. Сохраните изменения и выйдите.

Поздравляем! Вы создали ваш собственный файл .htaccess. Теперь посетите ваш сайт и проверьте все ли работает правильно, так как неправильная настройка файла может привести к появлению ошибки 500 internal server error.

Создание файла htaccess для WordPress

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

Теперь можно заняться настройкой. В стандартные настройки входит такая запись:

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php 

# END WordPress

Кстати стандартный файл .htaccess для WordPress можно скачать здесь

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

Да да, лучше перестраховаться

<Files .htaccess>
 order allow,deny
 deny from all

Блокировка по IP

<Limit GET POST>
order allow,deny
deny from
deny from yyy.yyy.yyy.yyy
allow from all

*где ххх и yyy — ip адреса злодеев

Дополнительная защита сайта от спама

Некоторые спам-боты обращаются к файлу wp-comments-post.php напрямую, а этот файл отвечает за комментарии на вашем. Но можно отловить такие запросы проверяя все обращения  на наличие REFERER, ибо у обычных посетителей он будет, а спам-боты как правило им обделены. (для справки: Referer (HTTP referer) — в протоколе HTTP один из заголовков запроса клиента. Содержит URL источника запроса. Если перейти с одной страницы на другую, referer будет содержать адрес первой страницы. Часто на HTTP-сервере устанавливается программное обеспечение, анализирующее referer и извлекающее из него различную информацию. Так, например, владелец веб-сайта получает возможность узнать, по каким поисковым запросам, как часто и на какие именно страницы попадают люди. )

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.** 
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$ 

Настроить перенаправление с www на без www —  редирект 301

Это необходимо сделать. Зачастую многие игнорируют этот параметр.

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.saaait\.ru$ 
RewriteRule ^(.*)$$1 

Настроить перенаправление с без www на www —  редирект 301

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^saaait\.ru$ 
RewriteRule ^(.*)$$1 

Зачем нужен 301 редирект?

Дело в том, что поисковики считают один и тот же сайт с www и без него разными сайтами. И если вы занимаетесь продвижением сайта, то ссылочный вес может утекать из за такого написания и не правильной настройки. И все внешние ссылки на ваш сайт будут делиться на две части, в зависимости от того, в каком виде размещена ссылка на ваш сайт (с www или же без него), и при отсутствии редиректа вы будете фактически лишаться части ссылок, так как они буду растекаться в итоге на 2 разных сайта.

Удаляем /category/ из адресной строки

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

RewriteRule ^category/(.+)$ httр://$1 

Теперь вид такой:

Включаем кэширование браузера

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

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch "\.(jpg|gif|png|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"

Сжатие данных Gzip

Сжатие данных на сайте тоже позволить увеличить скорость загрузки вашего сайта

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0 no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
<ifmodule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file \.js$
mod_gzip_item_include file \.css$ </ifmodule>

Стандартный образец .htaccess для WordPress

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

Если не умеете делать резервные копии, то прочитайте эту статью… А я продолжаю!

Как поступить, когда .htaccess отсутствует? Делаем следующее… На рабочем столе, создадим обычный txt-файл и переименуем его в .htaccess! После чего, откройте его с помощью все того же текстового редактора «блокнот», хотя лучше применить «Notepad++»… И запишите туда следующие записи:

Теперь копируем все это дело и сохраняем… Перекидываем обратно в корневую директорию ресурса на хостинге.

Убираем дубли WordPress с помощью .htaccess

Лично я использую .htaccess для перенаправления посетителей или поисковых ботов с одного адреса на другой (редирект). Это в первую очередь необходимо для борьбы с дублированием контента… Если не знаете про что идет речь, то почитайте статью моего партнера — тут, в поиске наберите «дубли», там несколько статей!

Используем .htaccess для борьбы с дублями:

Примеры функций .htaccess для WordPress

Внимание! Данные коды подойдут не для всех из-за особенностей Вашего хостинг-провайдера!

Создадим перенаправление (редирект) на другой домен:

Перенаправление с www.доменс.ru на основной домен сайта доменс.ru

Блокировка доступа к ресурсу для всех:

Блокировка конкретных юзеров к ресурсу по IP:

А вот так, наоборот, открываем доступ к ресурсу для определенных IP

Кэшируем данные в браузере — Сам Google советует применять кэширование информации, чтобы ускорить ресурс. Смысл данной настройки в том, что браузер единожды получает определенные виды данных и далее забирает их из кэша, а не подгружает их заново. Благодаря этому ресурсу добавляется заветная скорость загрузки.

Если первый вариант не сработал, попробуйте вот этот:

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

GZIP-сжатия для: HTML, CSS, JS — ускоряем загрузку блога:

Теперь сделаем кеширование файлов:

Хочу еще раз предупредить о том, что .htaccess для WordPress не игрушка! Вы все делаете на свой страх и риск! Если не уверены, лучше нанять спеца!

До следующих уроков!

PS: Кстати, создал канал на Telegram ( и приглашаю Вас !


Redirection is the most popular redirect manager for WordPress. With it you can easily manage 301 redirections, keep track of 404 errors, and generally tidy up any loose ends your site may have. This can help reduce errors and improve your site ranking.

Redirection is designed to be used on sites with a few redirects to sites with thousands of redirects.

It has been a WordPress plugin for over 10 years and has been recommended countless times. And it’s free!

Full documentation can be found at

Redirection is compatible with PHP from 5.6 and upwards (including 7.4).

Redirect manager

Create and manage redirects quickly and easily without needing Apache or Nginx knowledge. If your WordPress supports permalinks then you can use Redirection to redirect any URL.

There is full support for regular expressions so you can create redirect patterns to match any number of URLs. You can match query parameters and even pass them through to the target URL.

The plugin can also be configured to monitor when post or page permalinks are changed and automatically create a redirect to the new URL.

Conditional redirects

In addition to straightforward URL matching you can redirect based on other conditions:

  • Login status – redirect only if the user is logged in or logged out
  • WordPress capability – redirect if the user is able to perform a certain capability
  • Browser – redirect if the user is using a certain browser
  • Referrer – redirect if the user visited the link from another page
  • Cookies – redirect if a particular cookie is set
  • HTTP headers – redirect based on a HTTP header
  • Custom filter – redirect based on your own WordPress filter
  • IP address – redirect if the client IP address matches
  • Server – redirect another domain if also hosted on this server
  • Page type – redirect if the current page is a 404

Full logging

A configurable logging option allows to view all redirects occurring on your site, including information about the visitor, the browser used, and the referrer. A ‘hit’ count is maintained for each redirect so you can see if a URL is being used.

Logs can be exported for external viewing, and can be searched and filtered for more detailed investigation.

Display geographic information about an IP address, as well as a full user agent information, to try and understand who the visitor is.

You are able to disable or reduce IP collection to meet the legal requirements of your geographic region.

Add HTTP headers

HTTP headers can be adder to redirects or your entire site that help reduce the impact of redirects or help increase security. You can also add your own custom headers.

Track 404 errors

Redirection will keep track of all 404 errors that occur on your site, allowing you to track down and fix problems.

Errors can be grouped to show where you should focus your attention, and can be redirected in bulk.

By default Redirection will manage all redirects using WordPress. However you can configure it so redirects are automatically saved to a .htaccess file and handled by Apache itself.

If you use Nginx then you can export redirects to an Nginx rewrite rules file.

Fine-grained permissions

Fine-grained permissions are available so you can customise the plugin for different users. This makes it particularly suitable for client sites where you may want to prevent certain actions, and remove functionality.

Import & Export

The plugin has a fully-featured import and export system and you can:

  • Import and export to Apache .htaccess
  • Export to Nginx rewrite rules
  • Copy redirects between sites using JSON
  • Import and export to CSV for viewing in a spreadsheet
  • Use WP CLI to automate import and export

You can also import from the following plugins:

  • Simple 301 Redirects
  • SEO Redirection
  • Safe Redirect Manager
  • Rank Math
  • WordPress old slug redirects
  • Quick Post/Pages redirects

Wait, it’s free?

Yes, it’s really free. There’s no premium version and no need to pay money to get access to features. This is a dedicated redirect management plugin.

Please submit translations to:

Правильный htaccess для wordpress

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

Сейчас мы напишем правильный .htaccess для WordPress.

.htaccess — очень важный файл! Это дополнительная конфигурация для сервера. В нем можно указать и изменить множество параметров.

Базовые для сайта на движке wordpress следующие:

Эти строки включают механизм преобразований, необходимый для создания страниц с использованием ЧПУ.

В зависимости от требований, вы можете добавить туда и дополнительные параметры.  Значок # в файле воспринимается как комментарий.

Копируем, и вставляем  до # END WordPress

Это основное улучшение, рассмотрим и другие:

Защита изображения на сайте.

Представьте себе такую ситуацию: какой-нибудь сайт размещает у себя изображение, которое находится на вашем ресурсе. Таким образом, ваш сайт попадет под нагрузку, так как картинки будут загружаться с вашего сайта.

Чтобы этого избежать, пропишете в файле htaccess следующее:

Защита от Спама.

Зачастую многие спам-боты обращаются напрямую к файлу, который обрабатывает комментарии пришедшие с сайта, этот файл называется wp-comments-post.php. Можно выловить спам-бота от живого пользователя через обращение к файлу wp-comments-post.php на наличие REFERER. При добавлении комментариев, у пользователя он есть, а вот у спам-бота его нет. Но этот метод не является 100% защитой от Спама,  воспользуйтесь дополнительно плагином. Не забудьте поменять «ваш домен.ru» на ваш (5-тая строка ).

Запретить доступ к папке wp-content и wp-includes.

Все пользователи  WordPress знают, что в папке «wp-content» хранятся все плагины и темы, картинки и многое др. Рекомендую защитить папку «wp-content» от нехороших людей (редисок).

Создать новый файл htaccess в папке «wp-content» на хостинге с таким кодом (эти же действия сделайте для папки «wp-includes»):

Запрет доступа к файлу wp-config.php

В WordPress файл «wp-config.php»  содержит всю важную информацию, например, название и пароль к базе данных. Запретим доступ через файл htaccess.

Запрещаем просмотр нежелательным User-Agent.

Вы можете запретить просмотр сайта некоторым программам, сканирующим сайтам, старые браузерам от которых вы полностью отказались.

Ограничение доступа к админ-панеле WordPress.

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

Защита htaccess.

Мы защитили файлы, папки от посторонних лиц, но не нужно забывать, что сам файл htaccess тоже нуждается в защите. Согласен, немного смешно звучит. Итак, защитим все файлы, которые начинаются с «hta» от просмотра нежелательными и любопытными лицами.

(Код, который ускоряет блог.)

○ Включаем кэширование браузера клиента.

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

С этим читают