Страница заглушка в WordPress без использования плагинов

Ромчик
2

wordpressДоброго времени суток. В данной статье хочу поделиться одним из методов перенаправления пользователей на страницу-заглушку в WordPress не используя сторонних плагинов.

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

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

# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>
# END WordPress

После строки RewriteEngine On добавляем следующий код:

RewriteCond %{REMOTE_ADDR} !^127.0.0.1
RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.html [R=302,L]

 

И в итоге наш .htaccess выглядит следующим образом:

# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REMOTE_ADDR} !^127.0.0.1
    RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
    RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
    RewriteRule .* /maintenance.html [R=302,L]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Получается все будут перенаправлены на страницу  maintenance.html, кроме пользователей пришедших с адреса 127.0.0.1

Осталось создать в корне страницу maintenance.html

Если необходимо разрешить доступ с нескольких адресов, например, 127.0.0.1, 192.168.1.1  и диапазона 192.168.2.1 – 192.168.2.5, то дописываем, после RewriteCond %{REMOTE_ADDR} !^127.0.0.1

RewriteCond %{REMOTE_ADDR} !^192.168.1.1
RewriteCond %{REMOTE_ADDR} !^192.168.2.[1-5]$

Вот как теперь выглядит наш .htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REMOTE_ADDR} !^127.0.0.1
    RewriteCond %{REMOTE_ADDR} !^192.168.1.1
    RewriteCond %{REMOTE_ADDR} !^192.168.2.[1-5]$
    RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
    RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
    RewriteRule .* /maintenance.html [R=302,L]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Вот и все.

P.S. данный способ подходит не только для WordPress, т.к. настройки касаются только Apache.

Понравилась статья? Поделись с друзьями.
  • Add to favorites
  • Добавить ВКонтакте заметку об этой странице
  • Twitter
  • Facebook
  • Мой Мир
  • LiveJournal
  • Одноклассники
  • Блог Я.ру
  • MySpace
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • Reddit
  • StumbleUpon
  • Technorati
  • del.icio.us
  • БобрДобр
  • LinkedIn
  • Memori.ru
  • Сто закладок
  • Blogger

  • Fi - 28.04.2018 в 01:56

    А в maintenance.html какие именно коды ?

    • Ромчик - 28.04.2018 в 10:16

      Часть комментария удалена, обвинения без доказательств.(не буду говорить, что о таких думают, сами догадаетесь). И сам ответ на вопрос. В maintenance.html вы можете добавить любой html код.

  • ©2012-2020 По всем вопросам обращайтесь через форму обратной связиПолитика конфиденциальности

    Яндекс.Метрика