ممکن است دلایل مختلفی باعث شده باشد که بخواهید آدرس سایتتان را تغییر دهید: تغییر دامنه، انتقال به یک سابدامین، بروزرسانی از WWW به بدون www، انتقال فایلها، یا مهاجرت از http به https. هر کدام از این موارد نیاز به دقت دارند چون یک اشتباه کوچک میتواند سایت را از دسترس خارج کند. در این راهنما، روشهای مختلف تغییر آدرس URL در وردپرس را گام به گام توضیح میدهیم.
آموزش تغییر آدرس سایت در وردپرس
از آنجایی که آدرس سایت (URL)، آدرسی برای پیدا کردن کسبوکار و محتوای سایت شماست، از اهمیت بالایی برخوردار است. انتخاب درست این URL میتواند بر وضعیت عملکرد سایت و حتی سئوی آن تأثیر بگذارد.
در این مقاله به موارد زیر اشاره خواهیم کرد:
- تغییر آدرس URL از طریق داشبورد ادمین
- تغییر آدرس URL در فایل wp-config.php
- تغییر آدرس URL به طور مستقیم در دیتابیس
- تغییر آدرس URL از طریق WP-CLI
- تغییر آدرس ورود به وردپرس
- ریدایرکت کردن بعد از تغییر آدرسها
تغییر آدرس URL از طریق داشبورد ادمین
یکی از آسانترین و متداولترین روشها، تغییر آدرس از طریق داشبورد وردپرس است. در منوی ادمین، به قسمت تنظیمات ← عمومی (Settings → General) رفته و آدرس سایت را تغییر میدهید.
هر دوی این فیلدها باید یکی باشند، مگر اینکه بخواهید به وردپرس یک دایرکتوری مجزا بدهید. دقت کنید که پس از زدن دکمه ذخیره، وردپرس از طریق آدرس جدید در دسترس خواهد بود. اگر به طور تصادفی آدرس URL را اشتباه وارد کرده باشید، میتوانید از طریق ویرایش فایل wp-config.php مشکل را برطرف کنید. همچنین باید کش وردپرس را نیز پاک کنید، در غیر این صورت با خطای ریدایرکت مواجه خواهید شد.
نکتهای که بسیاری از کاربران نادیده میگیرند این است که دو فیلد WordPress Address (URL) و Site Address (URL) تفاوت دارند. اولی مشخص میکند فایلهای هسته وردپرس کجا نصب شدهاند، دومی آدرسی است که بازدیدکنندگان برای دسترسی به سایت شما وارد میکنند. در اکثر نصبهای استاندارد این دو یکساناند، اما اگر وردپرس را در زیر پوشهای مثل /wordpress/ نصب کرده باشید، میتوانند متفاوت باشند.
تغییر آدرس URL در فایل wp-config.php
روش دوم استفاده از فایل wp-config.php است. مقادیری که در این فایل ویرایش میکنید، در تنظیمات ادمین وردپرس نیز اعمال خواهند شد. اگر فیلدها در پنل ادمین قابل ویرایش نبودند، به این دلیل است که مقادیر در این فایل به صورت کد تعریف شدهاند.
فایل wp-config.php معمولاً در دایرکتوری روت سایت وردپرسی قرار دارد و میتوان از طریق FTP، SSH و WP-CLI به آن دسترسی داشت.
در فایل wp-config.php، این دو خط را بالای خطی که میگوید stop editing قرار دهید:
define( 'WP_HOME', 'http://yoursiteurl.com' );
define( 'WP_SITEURL', 'http://yoursiteurl.com' );
فایل wp-config.php را ذخیره کنید و ببندید. بعد از این کار، در قسمت تنظیمات عمومی پنل وردپرس، این دو خط به صورت خاکستری قابل مشاهده هستند ولی نمیتوان آنها را ویرایش کرد، تا زمانی که آنها را از همان فایل wp-config.php پاک کنید.
این روش به خصوص در مواقعی مفید است که به داشبورد ادمین دسترسی ندارید یا سایت به دلیل آدرس اشتباه قابل بارگذاری نیست. با ویرایش مستقیم این فایل از طریق FTP یا مدیر فایل هاست، میتوانید مشکل را بدون نیاز به ورود به پنل مدیریت حل کنید.
تغییر آدرس URL به طور مستقیم در دیتابیس
روش سوم استفاده از دیتابیس وردپرس است. برای این کار به phpMyAdmin مراجعه میکنیم که اغلب در قسمت دیتابیس داشبورد کنترلپنل هاست قرار دارد.
توجه کنید که ادیت یا دستکاری فایلهای دیتابیس میتواند سایت را با مشکل مواجه کند. پس از سایت بکآپ بگیرید قبل از هر اقدامی، یا این کار را به پشتیبانان هاست خود بسپارید.
در phpMyAdmin از سمت چپ روی دیتابیس خود کلیک میکنیم. سپس اسکرول کرده و روی wp_options کلیک میکنیم. ممکن است دیتابیس شما پیشوند متفاوتی داشته باشد مثل wp56_options.
سپس آدرس سایت (siteurl) و خانه (home) را پیدا کرده، روی مقدار option_value کلیک کرده و آدرس جدید را وارد میکنیم. تغییرات به طور خودکار ذخیره خواهند شد.
اما اگر سایت شما حجم بزرگی دارد یا تعداد زیادی پست و صفحه دارد، تغییر فقط دو ردیف در wp_options کافی نیست. آدرسهای قدیمی ممکن است در محتوای پستها، تصاویر، و متادیتا هنوز باقی بمانند. در این حالت باید از ابزارهایی مثل Search-Replace-DB یا دستور WP-CLI برای جایگزینی سراسری استفاده کنید.
تغییر آدرس URL از طریق WP-CLI
راهکار چهارم استفاده از محیط خط فرمان (Command Line Interface) برای دسترسی به سایت و تغییر آدرس است. برای این کار به دسترسی SSH نیاز دارید.
دستورات لازم برای تغییر آدرس URL سایت:
wp option update home 'http://yoursiteurl.com'
wp option update siteurl 'http://yoursiteurl.com'
اما قدرت واقعی WP-CLI در دستور search-replace است. اگر دامنه را کاملاً عوض کردهاید، باید تمام آدرسهای قدیمی موجود در پایگاه داده را جایگزین کنید:
wp search-replace 'http://old-domain.com' 'https://new-domain.com' --skip-columns=guid
پارامتر --skip-columns=guid از تغییر ستون guid جلوگیری میکند که برای سازگاری فیدهای RSS اهمیت دارد. اگر میخواهید قبل از اجرا ببینید چه تعداد رکورد تغییر میکند، پارامتر --dry-run را اضافه کنید تا بدون اعمال تغییرات، فقط آمار نمایش داده شود.
تغییر آدرس ورود به وردپرس
گاهی میخواهید آدرس ورود به پنل وردپرس را بدون تغییر آدرس سایت ویرایش کنید. در حالت عادی این آدرس به صورت /wp-login.php یا /wp-admin/ است. تغییر این آدرس به دلایل امنیتی توصیه میشود چون اکثر حملات brute force به همین آدرسهای پیشفرض هدف میگیرند.
۱. تغییر آدرس ورود به وردپرس با پلاگین
برای استفاده از افزونه، میتوان از WPS Hide Login استفاده کرد که حدود ۸۰۰ هزار نصب فعال دارد. این افزونه هیچ فایلی را در هسته تغییر نمیدهد و دستورات REWRITE را دستکاری نمیکند. با افزونههایی مثل BuddyPress و bbPress نیز سازگاری کامل دارد. پس از نصب و فعالسازی:
- به منوی تنظیمات و سپس WPS Hide Login بروید.
- آدرس ورود جدید را در فیلد Login URL اضافه کنید.
- یک URL ریدایرکت در فیلد Redirection URL اضافه کنید (این صفحه زمانی نمایش داده میشود که کسی آدرس wp-admin را مستقیم وارد کند).
- ذخیره کنید.
۲. تغییر آدرس ورود به روش دستی
برای تغییر آدرس ورود به صورت دستی باید به فایل .htaccess مراجعه کنید. این فایل دو روش در اختیارتان میگذارد:
روش اول، رمزگذاری روی صفحه ورود به کمک یک .htpasswd است. پس از تنظیم، هر کسی که قصد ورود به صفحه لاگین داشته باشد باید پسورد اضافی وارد کند. این یک لایه امنیتی اضافه است که حتی اگر رمز وردپرس لو برود، مانع از دسترسی میشود.
روش دوم این است که لیستی از IPهای مجاز را برای دسترسی به صفحه ورود تعریف کنید:
<Files wp-login.php>
Order deny,allow
Deny from all
Allow from 1.2.3.4
</Files>
اگر هاست شما از Nginx استفاده کند، فایل htaccess وجود ندارد و باید این محدودیتها را در تنظیمات Nginx اعمال کنید. با پشتیبانی هاست خود مشورت کنید.
ریدایرکت کردن بعد از تغییر آدرسها
بعد از تغییر آدرسها، باید مطمئن شوید که هر کسی که قصد ورود به آدرسهای قبلی را دارد با خطا مواجه نشده و به آدرس جدید هدایت میشود. بهتر است از ریدایرکت wildcard استفاده کنید. ابتدا از ارائهدهنده هاست خود بپرسید که آیا اجازه نصب ریدایرکت wildcard در کنترلپنل را میدهد یا نه.
برای ریدایرکت کردن میتوانید از افزونه Redirection استفاده کنید که به صورت wildcard از آدرس قبلی به آدرس جدید ریدایرکت میکند. اگر از افزونه Yoast Premium استفاده میکنید و میخواهید آدرس یک صفحه یا پست را تغییر دهید، این پلاگین به صورت خودکار ریدایرکت را انجام داده و نیازی به تنظیم دستی نخواهید داشت.
برای ریدایرکت دائمی (۳۰۱) از طریق فایل .htaccess در سرورهای Apache، میتوانید این کد را اضافه کنید:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain\.com [NC]
RewriteRule ^(.*)$ https://new-domain.com/$1 [R=301,L]
استفاده از کد ۳۰۱ (ریدایرکت دائمی) به جای ۳۰۲ (موقت) از نظر سئو اهمیت دارد. ریدایرکت ۳۰۱ به موتورهای جستجو میگوید که آدرس دائماً تغییر کرده و باید رتبهبندی صفحه قدیمی به آدرس جدید منتقل شود.
نکات مهم بعد از تغییر آدرس
- کش را پاک کنید: بعد از تغییر آدرس، کش افزونههای کش مثل W3 Total Cache یا WP Rocket را پاک کنید.
- CDN را بهروز کنید: اگر از شبکه توزیع محتوا (CDN) استفاده میکنید، تنظیمات دامنه را در آن بهروز کنید.
- گواهی SSL: اگر از http به https مهاجرت میکنید، مطمئن شوید گواهی SSL روی دامنه جدید نصب و فعال است.
- Google Search Console: دامنه جدید را در Search Console ثبت کرده و تغییر آدرس را از طریق تنظیمات این ابزار به گوگل اطلاع دهید.
- سایتمپ را بهروز کنید: سایتمپ XML سایت را مجدداً تولید و در Search Console ثبت کنید.
- لینکهای داخلی: از WP-CLI search-replace یا افزونه Better Search Replace برای بهروزرسانی لینکهای داخلی درون محتوا استفاده کنید.
سوالات متداول
آیا تغییر آدرس سایت به سئو آسیب میزند؟
اگر ریدایرکت ۳۰۱ به درستی تنظیم شده باشد، تأثیر منفی جدی نخواهید دید. اما انتظار داشته باشید که در کوتاهمدت (چند هفته) افت موقت رتبهبندی ممکن است اتفاق بیفتد. ثبت دامنه جدید در Google Search Console و ارائه سایتمپ، فرآیند ایندکس شدن را تسریع میکند.
بعد از تغییر آدرس به صفحه ورود دسترسی ندارم، چه کار کنم؟
مستقیماً از طریق FTP یا مدیر فایل هاست وارد شوید و فایل wp-config.php را ویرایش کنید. ثابتهای WP_HOME و WP_SITEURL را با آدرس صحیح اضافه کنید. این روش بدون نیاز به دسترسی به داشبورد کار میکند.
آیا باید همه لینکهای داخلی را هم بهروز کنم؟
بله. آدرسهای مطلق (absolute URLs) که درون محتوای پستها و صفحات به کار رفتهاند باید جایگزین شوند. دستور wp search-replace در WP-CLI یا افزونه Better Search Replace این کار را برای کل پایگاه داده انجام میدهد.
چه تفاوتی بین WordPress Address و Site Address وجود دارد؟
WordPress Address (WP_SITEURL) مشخص میکند فایلهای هسته وردپرس در کجا قرار دارند. Site Address (WP_HOME) آدرسی است که بازدیدکنندگان برای دسترسی به سایت وارد میکنند. در اکثر نصبهای معمولی این دو یکساناند.
جمعبندی
تغییر آدرس سایت وردپرسی کاری است که راههای متعددی دارد: از داشبورد ادمین، از طریق wp-config.php، مستقیم در دیتابیس، یا با WP-CLI. هر روش برای شرایط خاصی مناسب است. اگر به داشبورد دسترسی دارید، از مسیر Settings → General شروع کنید. اگر نه، wp-config.php یا phpMyAdmin گزینههای قابل اعتماد هستند. در هر صورت، قبل از هر تغییر یک بکآپ کامل بگیرید و بعد از تغییر، ریدایرکتهای ۳۰۱ را حتماً تنظیم کنید تا ترافیک قدیمی از دست نرود.
امیدواریم این مقاله برایتان مفید بوده باشد. اگر سوالی دارید که پاسخش را پیدا نکردید، در قسمت کامنتها مطرح کنید، کارشناسان ما در کمتر از چند دقیقه پاسخ خواهند داد.
این مقاله را با دوستان خود به اشتراک بگذارید.