لطفا قبل از این اقدامات پشتیبانی تهیه نمایید. موفق باشید.
تغییر آدرس ورودی مدیریت وردپرس wp-admin
شما می توانید روش های متعددی را برای تغییر نشانی مدیریت وردپرس پیدا کنید. مثل روش های انتقال یک آدرس به آدرس اصلی، تغییر کلی نام پوشه و … ولی متاسفانه اکثر این روش ها با مشکلاتی همراه هستند که با گذشت زمان می توانید آن ها را حس کنید. با توجه به قرار گیری /wp-admin/ در انتهای نشانی وب سایت بیانگر بخش مدیریت می باشد. در این مطلب کوتاه می خواهیم نشانی مذکور را به نشانی /admin-panel/ تغییر دهیم. نکته فراموش نشود که این روش یک انتقال آدرس ساده نیست و کل آدرس به آدرسی جدید تغییر خواهد کرد اگر در زمان های مشابه این آدرس درخواستی بیش از یک نفر داشته باشد به صفحه ی خطای ۴۰۴ منتهی می شود.
برای توضیح این که کاربرد این روش چیست؟ و کلا به چه دردی می خورد؟ باید بیان کنیم که اگر هکری بفهمد که شما از محیط وب وردپرس برای سایت خود استفاده می کنید، تقریبا نیمی از راه را برای هک کردن وب سایت شما طی کرده است ولی شما با این روش جلوی فهم دقیق هکر را نسبت به استفاده از وردپرس می گیرید ولی در کل روش های زیادی برای فهمیدن استفاده از وردپرس وجود دارد که در آینده بیشتر با آن ها آشنا می شوید.
مخفی کردن آدرس مدیریت وردپرس
ابتدا کد زیر را به فایل wp-config.php وردپرس اضافه کنید:
define('WP_ADMIN_DIR', 'admin-panel'); define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);
سپس کد زیر را کپی کرده و آن را در فایل functions.php قالب قرار دهید:
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); }
و در آخر کد زیر را به فایل htaccess موجود در ریشه سایت اضافه کرده و آن را ذخیره کنید:
RewriteRule ^admin-panel/(.*) wp-admin/$1?%{QUERY_STRING} [L]
جلوگیری از دسترسی مستقیم به wp-admin
کد زیر هم باعث می شود کلیه درخواست هایی که به آدرس قدیمی مدیریت فرستاده می شوند ، خطای ۴۰۴ را دریافت کنند . این کد را نیز به فایلfunctions.php قالب اضافه کنید:
add_action('login_form','redirect_wp_admin'); 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' ); } } }