ریدایرکت چیست؟ (+ آموزش ریدایرکت در cPanel، Direct Admin و وردپرس)
ریدایرکت چیست؟ (+ آموزش ریدایرکت در cPanel، Direct Admin و وردپرس)
ریدایرکت کردن دامنه یا صفحهای از سایت، درست مثل دایورت کردن تلفن همراه است. تا حالا از قابلیت دایورت در تلفنهای همراه استفاده کردهاید؟
مثلاً خود من اگر جایی باشم که آنتن ایرانسل ضعیف است، موقتاً خط ایرانسلم را روی شماره رایتلم دایورت میکنم. اینطوری معمولاً هیچ تماسی را از دست نمیدهم و همیشه در دسترس هستم.
حالا مشابه این اتفاق برای وبسایت هم وجود دارد. ممکن است که بخواهیم بهصورت دائم یا موقت، کل دامنه، یا چندتا صفحه از سایت را – به هر دلیلی – به مقصد دیگری منتقل کنیم؛ در این مواقع میتوانیم از Redirect کمک بگیریم.
ریدایرکت انواع مختلفی دارد و طبق هدفمان، باید بهترین روش ریدایرکت را انتخاب کنیم.
خب ، اگر آماده باشید، از تعریف ریدایرکت و انواع آن شروع کنیم و بعد بهصورت عملی، ریدایرکت کردن را یاد بگیریم.
ریدایرکت Redirect چیست؟
سرراستترین تعریف برای Redirect را سایت Moz ارائه کرده است:
«به فرآیند انتقال یک آدرس (URL)، به آدرسی دیگر، ریدایرکت کردن (Redirect) گفته میشود.»
همانطور که میدانید، هر صفحهای در اینترنت، یک آدرس منحصربهفرد دارد که URL نامیده میشود. بعضی وقتها – به هر دلیلی – ما میخواهیم که این URL به URL دیگری منتقل شود.
مثلاً یک سایت قدیمی داریم که در گوگل رتبه خوبی دارد؛ حالا یک ساب دامین ایجاد کردهایم و میخواهیم محتواهای آن را به آدرس جدید (ساب دامین) منتقل کنیم. این کار خیلی راحت با ریدایرکت دامنه قابل انجام است.
اینطوری اگر کاربری از گوگل وارد آدرس قدیمی شود، به صورت خودکار به آدرس جدید منتقل خواهد شد. (ناگفته نماند که گوگل این نقل و انتقالات را درک میکند و به مرور، آدرس قدیمی را از نتایج حذف کرده و آدرس جدید را نمایش خواهد داد.)
با انواع ریدایرکت آشنا شوید
وظیفۀ ریدایرکتها که مشخص و واضح است؛ همان تغییر مسیر دادن و هدایت کردن. اما در کل چند نوع ریدایرکت وجود دارد که تفاوتهای واضحی دارند. در این بخش انواع Redirect و تفاوتهای آنها را بررسی میکنیم.
ریدایرکت 301؛ انتقال دائمی
اگز میخواهید آدرس سایتتان را برای همیشه تغییر دهید، بهتر است از ریدایرکت 301 استفاده کنید.
مثلاً اگر سایتتان با 2 دامنه mesal.com و mesal.ir ثبت شده باشد و شما بخواهید که کاربران فقط به دامنه .ir دسترسی داشته باشند، میتوانید آدرس mesal.com را به mesal.ir ریدایرکت کنید.
موتورهای جستجو هم موظفاند آدرس قدیمی شما را به آدرس جدیدتان تغییر دهند. در واقع اگر میخواهید اعتبار صفحهتان به کلی به آدرس جدید سایت منتقل شود، بهتر است از Redirect 301 استفاده کنید.
⚠️ دقت کنید که از ریدایرکت 301 معمولاً برای تغییر مسیر دائمی کاربران، از سایت قدیمی به جدید استفاده میشود. مثلاً ممکن است که شما ریبرندینگ کرده باشید و نام دامنهتان تغییر کرده باشد؛ با ریدایرکت 301 میتوانید کاربران را به دامنه جدید منتقل کنید. مثل iranrenter.com که بعد از ریبرندینگ، روی lendo.com ریدایرکت شده است.
ریدایرکت 302؛ انتقال موقت
بعضی وقتها شما ناچارید که آدرس یک صفحه را بهصورت موقت به صفحۀ دیگری منتقل کنید. مثل وقتهایی که میخواهید تست A/B انجام دهید یا دارید روی سایت کار میکنید و میخواهید کاربران به یک آدرس دیگر منتقل شوند؛ در این مواقع ریدایرکت 302 به کمکتان میآید.
با کمک ریدایرکت 302، کاربر بهصورت موقت به آدرس جدیدی منتقل میشود و از اعتبار صفحه قبلی چیزی کم نمیشود (این نکته برای سئوکاران خیلی مهم است!).
فقط یادتان باشد که موتورهای جستجو درباره استفاده از ریدایرکت 302 کمی سختگیرند و اگر مدت زیادی از آن استفاده کنید، مثل ریدایرکت 301 با آن رفتار میکنند.
در تصویر زیر میتوانید تفاوت ریدایرکت 301 و 302 را به وضوح ببینید.
ریدایرکت 307 (HTTP 1.1)
ریدایرکت 307 هم مثل ریدایرکت 302، برای موارد موقتی استفاده میشود، اما با یک تفاوت کوچک.
اولین نوع ریدایرکت که برای تغییر مسیر موقتی استفاده شد، همان ریدایرکت 302 بود؛ اما بعد از مدتی بیشتر کلاینتها (مثل کروم و فایرفاکس) روش درخواست HTTP را از POST به GET تغییر دادند. همینجا بود که ریدایرکت 307 به عنوان بخشی از آپدیت HTTP ارائه شد.
خب، صبر کنید! اینجا باید یک پرانتز باز کنیم.
آشنایی با HTTP Request
خب، زبان مشتری بین کلاینت (همان مرورگر) و سرور، HTTP (مخفف Hypertext Transfer Protocol) است. با استفاده از HTTP ارتباط بین سرور و کلاینت مدیریت و درخواستها (Requests) و پاسخها (Responses) سازماندهی میشوند.
اینطوری وقتی درخواستی از سمت کلاینت به سرور منتقل میشود، میگوییم که یک درخواست HTTP ارسال شده است. حالا برای ارسال این درخواستها، کلاینت میتواند از روشهای مختلفی استفاده کند که به آنها HTTP Request Method گفته میشود. از جمله این متدها، میتوانیم به POST و GET اشاره کنیم.
فکر میکنم تا همین حد اطلاعات درباره متدهای HTTP در این مقاله کافی است؛ اگر علاقه داشتید که بیشتر درباره HTTP بدانید، حتماً به ما بگویید، تا در مقاله دیگری کامل و مفصل به آن بپردازیم.
برگردیم سر بحث ریدایرکت.
یک نکته مهم را یادتان باشد:
وقتی که میخواهید یک انتقال خیلی موقت داشته باشید و سریع به حالت قبلی برگردید، از ریدایرکت 307 استفاده کنید. اما اگر میخواهید آدرسی که دارید آن را ریدایرکت میکنید، مدتی در نتایج جستجو با محتوای صفحه مقصد (آدرس دوم) نشان داده شود، از ریدایرکت 302 استفاده کنید.
مثلاً شما صفحه X و Y را دارید که X برای انجام تست A/B باید موقتاً روی Y ریدایرکت شود. به این صورت که اگر کاربری از گوگل هم وارد شد، صفحه Y را بهجای X ببیند. در چنین شرایطی بهتر است از Redirect 302 استفاده کنید.
متا رفرش (Meta Refresh)
تا حالا شده وارد صفحهای شوید و پیغامی مبنی بر این بگیرید که «تا چند دقیقه دیگر به آدرس دیگری منتقل میشوید» یا «اگر تا چند دقیقه دیگر به صفحه دانلود منتقل نشدید، اینجا را کلیک کنید»؟
در این مواقع که صفحه بعد از چند ثانیه (معمولاً 5 ثانیه شمارش معکوس) به آدرس دیگری منتقل میشود، از Meta Refresh استفاده شده است.
متا رفرش هم نوعی از ریدایرکت است؛ اما در سطح صفحه (Page Level) اتفاق میافتد و ربطی به سطح سرور (Server Level) ندارد.
نکته: روشهای قبلی همگی در سطح سرور انجام میشدند.
چه زمانی به ریدایرکت URL نیاز داریم؟
تا اینجای مقاله، به چندتا از شرایطی که نیاز به ریدایرکت دارند، اشاره کردیم. حالا میخواهیم این پازل را کاملتر کنیم و مروری سریع داشته باشیم بر کابردهای ریدایرکت.
بهطور خلاصه، در مواقع زیر میتوانید ریدایرکت انجام دهید:
- زمانهایی که خطای 404 دارید (ارور 404 زمانی رخ میدهد که محتوای یک صفحه پاک شده و صفحه دیگر وجود نداشته باشد)
- برای مواقعی که آدرس سایت قرار است به آدرس بدون www تغییر کند
- وقتی که دامنه را با 2 پسوند متفاوت ثبت کردهایم و میخواهیم که کاربر فقط یکی را ببیند
- زمانی که سیستم مدیریت محتوای سایت تغییر میکند
- وقتی که میخواهیم یک صفحۀ سایت را حذف کنیم (مخصوصاً اگر در نتایج جستجو رتبه خوبی داشته باشد)
- اگر مدل پیوندهای یکتا در وردپرس تغییر کند
- و در نهایت زمانی که میخواهیم دامنۀ سایت را تغییر دهیم
در بخش بعدی مقاله، میخواهیم ریدایرکت کردن از روشهای مختلف را یادتان بدهیم.
چگونه ریدایرکت کنیم؟
راحتترین روش ریدایرکت کردن استفاده از افزونه است. اگر سایت وردپرسی دارید، با افزونههای مختلف، کارتان خیلی راحت خواهد بود. اگر هم سایت وردپرسی ندارید، از روشهای دیگری که میگوییم استفاده کنید.
ریدایرکت با استفاده از افزونۀ رایگان Redirection و Redirect 301
افزونه Redirection یکی از محبوبترین افزونههای رایگان ریدارکت در وردپرس است. این افزونه به شما امکان ردیابی تمام خطاهای 404 سایتتان را میدهد و میتوانید از طریق آن ریدایرکتهای 301 خود را مدیریت کنید.
از ویژگیهای این افزونه میتوان موارد زیر را نام برد:
- میتوانید ساده و آسان ریدایرکت های 301 را مدیریت کنید
- امکان تعیین شرایط برای ریدایرکت را دارید
- از وب سرورهای Apache و Nginx پشتیبانی میکند
- امکان ریدایرکت دستی صفحات را دارد
- امکان ریدایرکت خودکار آدرسها وجود دارد
افزونه بعدی هم Redirect 301 است که خیلی کارتان را سریع میکند و استفاده از آن واقعاً ساده است. در تصویر زیر نمایی از این افزونه را میبینید.
ریدایرکت دامنه در سی پنل
اگر کنترل پنل سی پنل استفاده میکنید، یک راه ساده برای انتقال آدرسها پیش پایتان است.
برای ریدایرکت کردن آدرسها باید ابتدا وارد هاست سی پنل شوید. (اگر نیاز بود، به آموزش نحوه ورود به سی پنل مراجعه کنید).
سپس از قسمت Domains بر روی Redirects کلیک کنید.
حالا باید از طریق Add redirects، ریدایرکتهای جدیدی برای آدرس سایت جدید خود وارد کنید.
اولین تنظیماتی که باید انجام دهید، گزینۀ Types است. یعنی باید نوع ریدایرکت مدنظر را وارد کنید.
هر نوع از ریدایرکت را که انتخاب کردید، باید بعد از آن، آدرس فعلی و آدرس جدید را هم وارد کنید. در آدرس فعلی، کافی است نامک را که بعد از دامنه اصلی میآید وارد کنید (مثلاً iranserver.com/blog را در نظر بگیرید. blog نامک است).
باید توجه داشته باشید که در آخر آدرس سایت، علامت / را قرار دهید و پروتکل https یا http را هم انتخاب کنید.
حالا در قسمت www. سه تا گزینه وجود دارد:
- Only redirect with www: معنی این گزینه این است که اگر کاربری نام سایت را با www در مرورگر وارد کرد به آدرس جدیدی که وارد کردیم منتقل شود.
- Redirect with or without www: معنی این گزینه این است که اگر کاربری آدرس سایت را با www یا بدون آن وارد کرد به آدرس جدید سایت منتقل شود.
- Do not redirect www: این یعنی اگر کاربری بدون www آدرس سایت شما را وارد کرد، به آدرس جدید منتقل نشود.
ریدایرکت در دایرکت ادمین
این بخش مشابه همان ریدایرکت در سی پنل است.
کاری که باید همان اول انجام دهید این است که وارد پنل دایرکت ادمین خود شوید. (اگر نیاز بود، به آموزش نحوه ورود به دایرکت ادمین مراجعه کنید).
در بخش Account management باید روی Site Redirection کلیک کنید.
در این بخش باید روی Create New Redirect کلیک کنید.
حالا پنجرهای مطابق تصویر زیر برایتان باز میشود. طبق توضیحات، این فیلدها را پر کنید و Create را بزنید تا کار تمام شود.
- Local URL Path: در اینجا آدرس قبلی را وارد میکنید. اگر میخواهید کل دامنهتان را ریدایرکت کنید، بهتر است این بخش را خالی بگذارید. در غیر این صورت آدرس را وارد کنید.
- Redirection Type: این بخش از شما میخواهد که نوع ریدایرکت را خودتان انتخاب کنید.
- Destination URL: آدرس اینترنتی (URL) صفحه مقصد (آدرس جدید) را وارد کنید.
خب، این از روشهای ریدایرکت، اگر سوالی داشتید حتماً از ما بپرسید. دیگر چیز زیادی درباره ریدایرکت نمانده، جز یک نکته که در بخش بعدی میخوانید.
یک نکته درباره ریدایرکت IP به دامنه
اگر هاستی که دارید دارای IP اختصاصی است و میخواهید آن را به دامنهتان منتقل کنید، در صورتی که دامنهتان هم دارای SSL باشد، قطعاً برایتان مشکل پیش میآید. چون آدرس IP بهصورت خودکار به https://111.111.111.111 تغییر میکند.
کاری که شما باید برای حل این مسئله انجام دهید این است که کدهای زیر را وارد فایل htaccess سایت خود کنید.
RewriteEngine On RewriteCond %{HTTP_HOST} ^111.111.111.111$ [NC,OR] RewriteCond %{HTTP_HOST} ^([a-z.]+)?domain.com [NC] RewriteCond %{HTTP_HOST} !^www. [NC] RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]
همین! فقط در اینجا باید حواستان باشد که بهجای domain.com نام دامنۀ خود را وارد کنید و بهجای مقدار 111.111.111.111 هم آدری IP هاست خود را بگذارید.
سخن پایانی
امیدواریم که بعد از تمام این حرفها، مفهوم Redirect را به خوبی درک کرده باشید و تفاوتهای انواع ریدایرکت را بتوانید توضیح دهید. احتمالا در مقالههای بعدی وبلاگ ایرانسرور، درباره افزونههای ریدایرکت مفصل صحبت کنیم؛ اما تا آن موقع خوشحال میشویم از تجربه شما هم استفاده کنیم. تا حالا از افزونه خاصی برای ریدایرکت در وردپرس استفاده کردهاید؟ برای CMS های دیگر مثل جوملا و پرستاشاپ چه پیشنهادی دارید؟
آماده شنیدن نظرات و پیشنهادات شما هستیم.