Intereting Posts

Как сделать wp-login.php недоступным

Я успешно сделал wp-admin недоступным (перенаправлено на страницу 404) вот коды в моем файле функции:

add_filter('site_url', 'wpadmin_filter', 10, 3); function wpadmin_filter( $url, $path, $orig_scheme ) { $old = array( "/(wp-admin)/"); $admin_dir = WP_ADMIN_DIR; $new = array($admin_dir); return preg_replace( $old, $new, $url, 1); } function redirect_wp_admin(){ $redirect_to = $_SERVER['REQUEST_URI']; if(count($_REQUEST)> 0 && array_key_exists('redirect_to', $_REQUEST)){ $redirect_to = $_REQUEST['redirect_to']; $check_wp_admin = stristr($redirect_to, 'wp-admin'); if($check_wp_admin){ wp_safe_redirect( '404.php' ); } } } 

и htaccess:

 RewriteRule ^controlpanel/(.*) wp-admin/$1?%{QUERY_STRING} [L] 

Теперь запутанная часть – я понятия не имею, как сделать то же самое для wp-login.php. изменение с «wp-login.php» на «доступ» работает, но когда wp-login.php введен, он все еще доступен

вот код в файле функции:

 add_filter('site_url', 'wplogin_filter', 10, 3); function wplogin_filter( $url, $path, $orig_scheme ) { $old = array( "/(wp-login\.php)/"); $new = array( "access"); return preg_replace( $old, $new, $url, 1); } 

Файл htaccess:

 RewriteRule ^access$ wp-login.php 

Итак, мой вопрос – что делать, чтобы wp-login.php не был доступен (перенаправлен на страницу 404 или что-то еще)?

Любые ответы очень оценены 🙂

заранее большое спасибо

Вместо фильтрации site_url вы должны фильтровать adim_url и login_url

 add_filter('admin_url', 'new_admin_url'); function new_admin_url() { // Insert the new URL here: return get_bloginfo('url').'/controlpanel/'; } add_filter( 'login_url', 'new_login_url', 10, 2 ); function new_login_url( $login_url, $redirect ) { return get_bloginfo('url').'/access/'; } 

И объединяйтесь с Правилами перезаписи и перенаправлениями в .htaccess. Например, для wp-login.php (я не эксперт mod_rewrite, поэтому, возможно, следующий код не работает или нуждается в некоторых модификациях):

 // Internal Rewrite from access to wp-login RewriteRule ^access(.*)$ wp-login.php$1 [NC,L] // Real redirection from wp-login to access appending the query string RewriteCond %{REQUEST_URI} ^wp-login.* RewriteRule ^ access$ [R=301,NC,QSA,L]