مقدمه
وردپرس یک سیستم مدیریت محتوا قدرتمند است، اما به دلیل محبوبیت زیاد، هدف هکرها و رباتهای خودکار قرار میگیرد. بسیاری از سایتها، مسیر پیشفرض وردپرس مثل /wp-admin
، /wp-content/plugins
و /wp-login.php
را بدون تغییر رها میکنند، که این موضوع خطر نفوذ و حملات خودکار را افزایش میدهد.
در این آموزش، گامبهگام یاد میگیریم:
- نصب وردپرس در پوشه اختصاصی (
administrator
) - لود قالبها از پوشه
assets
- آپلود فایلها از یک سابدامین (
files.example.com
) - مخفی کردن مسیرهای وردپرس از دید کاربران و رباتها
- افزایش امنیت سایت بدون تغییر هسته وردپرس
گام اول: آمادهسازی پوشهها
- در
public_html
پوشههای زیر را بسازید:
public_html/
├── index.php
├── .htaccess
├── assets/ ← قالبها و فایلهای CSS/JS
└── files/ ← آپلودهای مدیا (سابدامین)
- وردپرس را داخل پوشه
administrator
نصب کنید:
public_html/administrator/
├── wp-admin/
├── wp-includes/
├── wp-content/
├── wp-config.php
├── wp-login.php
└── ...
گام دوم: ایجاد سابدامین برای فایلها
- روی هاست یک سابدامین بسازید:
files.example.com → مسیر public_html/files
- اطمینان حاصل کنید که این مسیر قابل دسترس است و وردپرس میتواند فایلها را در آن آپلود کند.
گام سوم: تغییر فایل wp-config.php
فایل wp-config.php
داخل پوشه administrator
را باز کنید و تغییرات زیر را اعمال کنید:
/* مسیر سایت و وردپرس */
define('WP_SITEURL', 'https://example.com/administrator');
define('WP_HOME', 'https://example.com');
/* مسیر قالبها */
define('TEMPLATEPATH', dirname(__FILE__) . '/../assets');
define('STYLESHEETPATH', dirname(__FILE__) . '/../assets');
/* مسیر آپلودها روی سابدامین */
function custom_upload_dir($dirs) {
$dirs['baseurl'] = 'https://files.example.com';
$dirs['basedir'] = dirname(__FILE__) . '/../files';
return $dirs;
}
add_filter('upload_dir', 'custom_upload_dir');
⚠️ توجه:
dirname(__FILE__) . '/../'
مسیر یک سطح بالاتر از administrator است، یعنی همانpublic_html
.
گام چهارم: تنظیم فایل index.php
در public_html/index.php
کد زیر را قرار دهید تا وردپرس از پوشه administrator لود شود:
<?php
/* Loads the WordPress Environment */
require( dirname( __FILE__ ) . '/administrator/wp-blog-header.php' );
گام پنجم: تنظیم فایل .htaccess
در public_html/.htaccess
:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# مسدود کردن دسترسی مستقیم به administrator
RewriteRule ^administrator/ - [R=404,L]
# قوانین وردپرس برای URL های زیبا
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
در پوشه administrator
یک .htaccess
دیگر برای جلوگیری از مشاهده فایلها بسازید:
Options -Indexes
Order deny,allow
Deny from all
گام ششم: آپلود قالب و فایلها
- تمام فایلهای قالب را داخل
public_html/assets
قرار دهید. - فایلهای آپلود شده و مدیا به طور خودکار روی سابدامین
files.example.com
لود میشوند.
گام هفتم: تست و بررسی
- وارد سایت شوید:
https://example.com
- سایت بهطور کامل نمایش داده میشود.
- بررسی مسیر administrator:
https://example.com/administrator/
- صفحه ۴۰۴ نمایش داده میشود.
- بررسی سورس سایت و تب Network مرورگر:
- مسیر پلاگینها دیده نمیشود
- قالب از
/assets
لود میشود - مدیا از
files.example.com
لود میشود
مزایا این روش
- فرانتاند سایت کاملاً شبیه سایت برنامهنویسی شده به نظر میرسد
- مسیرهای وردپرس (wp-admin, plugins) برای کاربران و رباتها مخفی میشود
- آپلودها از سابدامین جدا لود میشوند → امنیت و سرعت بالا
- مدیریت سایت همچنان با وردپرس انجام میشود
محدودیتها و نکات امنیتی
- این روش نفوذ کامل را تضمین نمیکند.
- هکرهای حرفهای هنوز میتوانند از طریق آسیبپذیری قالب یا افزونه نفوذ کنند.
- توصیه میشود اقدامات مکمل امنیتی:
- محدود کردن دسترسی به wp-admin با IP یا Basic Auth
- HTTPS و هدرهای امنیتی
- غیرفعال کردن REST API و XML-RPC برای کاربران ناشناس
- مانیتورینگ و اسکن امنیتی
- بکاپگیری منظم
نتیجهگیری
با اجرای این روش، سایت وردپرسی شما:
- ظاهر کاملاً سفارشی و تمیز پیدا میکند
- مسیرهای پیشفرض وردپرس مخفی میشوند
- مدیریت وردپرس بدون دردسر و امن انجام میشود
این روش یکی از بهترین تکنیکها برای مخفی کردن وردپرس و جلوگیری از حملات خودکار است و با اعمال محدودیتهای امنیتی تکمیلی میتوان تقریباً سایت را به سطحی بسیار امن رساند.