Редирект с wp-login рабочей версии сайта на админку dev. версии сайта на Wordpress
Нужно реализовать редирект при попытке входа в админ-панель Wordpress на рабочей версии сайта, чтобы при переходе на example.com/wp-admin/ происходило перенаправление на dev.example.com/wp-admin/
Логика в том, что все работы с сайтом происходят на dev.example.com и периодически все изменения деплоятся на example.com и соответственно каждый деплой происходит обновление всех файлов на последнем
Хочется внедрить данное решение, во избежание работы с сайтом на оригинальной версии, потому что при деплое с dev версии перезаписываются все внесенные изменения на оригинале
Также нюансы:
- при деплое скрипт заменяет все ссылки вида dev.example.com на example.com, поэтому желательно не использовать в функции полноценный url
- при переходе на dev.example.com/wp-admin/ как обычно должна открываться форма входа в админ-панель (возможно, функция в php должна иметь проверку на наличие поддомена dev. / исключение для поддомена dev.)
- была попытка реализовать следующую функцию в functions.php:
function custom_login(){
global $pagenow;
if( 'wp-login.php' == $pagenow && !is_user_logged_in()) {
wp_redirect('dev.example.com/wp-admin/');
exit();
}
}
но нюанс в том, что функция работает для example.com/wp-admin/, но при этом, очевидно, получаем зацикленный редирект на dev.example.com/wp-admin/
- мы не можем сделать разные функции на двух версиях сайта, так как периодически происходит деплой и файлы на последнем перезаписываются, функция должна быть универсальна и корректно работать как на dev. так и на оригинале
Ответы (1 шт):
На продакшен сервере удалите админов, которым доступ туда запрещен или лишите их роли админов.
Если же у вас одна база данных на dev и prod, то на уровне вебсервера для папки wp-admin на prod установите дополнительно http авторизацию. В nginx это делается так. Apache так.