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