ریدایرکت چیست؟ آشنایی با ریدایرکت ۳۰۱، ۳۰۲ و ۳۰۷
یکی از مسائلی که بعد از چند ماه از راهاندازی سایت حتما به آن احتیاج پیدا میکنید ریدایرکت دامنه است. ریدایرکت(redirect) به این معنی است که به دلایل مختلفی بخواهید کاربران خود را از صفحات فعلی که حالا به دلایل گوناگونی در دسترس نیستند به صورت موقت یا به صورت دائمی به صفحه دیگری منتقل کنید. موقتی یا دائمی بودن این انتقال برای موتورهای جستجو مشخص میکند که اعتبار و ارزش سئو که برای صفحه خود گرفتید آیا قرار است به صفحه جدید منتقل شود یا نه؟
در ادامه این مقاله میخواهم به بررسی انواع ریدایرکت سایت که شامل ۳۰۱، ۳۰۲، ۳۰۷، ۴۱۰ و ۴۵۱ هستند بپردازم. برای هر یک از وضعیت کدهای HTTP که برای ریدایرکت صفحات وجود دارند ویژگی و ساختار آنها را بررسی کرده و در پایان نیز به نحوه استفاده از ریدایرکت در سایت میپردازم که میتوانید برای سایتهای وردپرسی از افزونه و برای سایر سیستمها از فایل htaccess. کمک بگیرید.
ریدایرکت یا Redirect چیست؟
ریدایرکت یا redirect همانطور که از معنای آن مشخص است به معنی انتقال دادن است. از این انتقال برای نرم افزارهای تحت وب استفاده میشود تا کاربران و ربات موتورهای جستجو را به صفحات دیگری منتقل کنند. این انتقال میتواند دلایل مختلفی داشته باشد که برخی از رایجترین آنها عبارتند از:
- تغییر ساختار پیوندهای یکتا در سایت
- تغییر دامنه سایت
- حذف یک نوشته و صفحه
- از دسترس خارج کردن یک صفحه به دلیل مشکلات حقوقی و قانونی
- تغییر سیستم مدیریت محتوای سایت و انتقال موقت کاربران به صفحهی دیگر
- و…
به هر دلیلی که بخواهید از ریدایرکت در سایت خود استفاده کنید، دو حالت وجود دارد که این دو حالت برای موتورهای جستجو مشخص میکند آیا ریدایرکت قرار است برای همیشه انجام گیرد یا اینکه موقتا این کار را انجام میدهید. برای کاربران در هر دو حالت ریدایرکت انجام میگیرد، اما در موتورهای جستجو موضوع کمی فرق میکند که باید وضعیت ریدایرکتها را به جهت حفظ سئو سایت مشخص کنید.
- ریدایرکت دائمی: وقتی از این نوع ریدایرکت استفاده کنید، به موتور جستجو اعلام میکنید که ضمن اینکه این صفحه برای همیشه به صفحه دیگری منتقل میشود، اعتباری که تاکنون برای آن صفحه کسب شده را هم باید به صفحه جدید منتقل کند. به عنوان نمونه اگر صفحهای با آدرس site.com/hosting/ داشتید که در آن خدمات هاست خود را معرفی کردید، ممکن است بخواهید به منظور کوتاه بودن آدرس این صفحه را به site.com/host/ تغییر دهید. در هنگام استفاده از ریدایرکت دائمی اعتبار از صفحه قدیمی به صفحه جدید منتقل شده و بعد از چند روز میبینیم که آدرسی که برای کلمات کلیدی مختلف در گوگل برای صفحه قدیمی در دسترس بود، به آدرس جدید تغییر داده شده و همچنان با همان کلمات رتبه صفحه حفظ شده است.
- ریدایرکت موقت: وقتی از این نوع ریدایرکت استفاده کنید برای گوگل و سایر موتورهای جستجو مشخص میکنید که این انتقال به صورت موقتی است و قرار نیست که اعتبار صفحات در نتایج جستو به صفحه دیگری منتقل گردد. در نتیجه تغییری در آدرس صفحه برای کلمات کلیدی که در صفحه قبلی داشتید رخ نخواهد داد. اما باید دقت کنید که این نوع ریدایرکت به مدت طولانی فعال نباشد.
حال که دانستید ریدایرکت چیست و چند حالت دارد، در ادامه به معرفی انواع ریدایرکت دامنه پرداخته و با بررسی شرایط و ویژگیهایی که دارند در پایان به نحوه استفاده کردن از آنها به کمک ابزارهای موجود میپردازم.
چند نوع ریدایرکت داریم؟
ریدایرکتها معمولا به سه دسته تقسیم میشوند که شامل ۳۰۱، ۳۰۲ و ۳۰۷ هستند. اما دو حالت ریدایرکت هم داریم که نمیتوان گفت که ریدایرکت هستند، بلکه میتوان آنها را در این گروهبندی دستهبندی کرد. این دو گروه روی کد وضعیت 4XX قرار دارند که به ترتیب شامل موارد زیر هستند.
- ریدایرکت ۴۱۰: با این نوع ریدایرکت میتوان مشخص کرد که یک محتوا یا یک صفحه برای همیشه حذف شده است.
- ریدایرکت ۴۵۱: با این نوع محتوا هم میتوان مشخص کرد که یک محتوا یا صفحه به دلیل برخی مسائل قانونی وجود دارد، اما در دسترس نیست.
معمولا دو نوع ریدایرکت بالا کاربرد زیادی ندارند و در اکثر سایتها سعی میشود از سه نوع ریدایرکت رایجی که در گروه 3XX قرار دارند استفاده کرد که شامل موارد زیر هستند.
ریدایرکت ۳۰۱
با استفاده از این ریدایرکت میتوانید کاربران را برای همیشه به آدرس دیگری منتقل کنید. این نوع از ریدایرکت اعتباری که در صفحه مبدا برای موتورهای جستجو وجود داشت را به آدرس مقصد منقل میکند و بعد از مدتی هم در نتایج جستجو خواهید دید که به صورت کامل صفحه مبدا از نتایج حذف میشود.
این حالت از ریدایرکت در چند حالت کاربرد دارد که بخواهید برای همیشه کاربران را از صفحه قدیمی به صفحه جدید منتقل کنید، ضمن اینکه اعتبار صفحه در گوگل نیز به صفحه جدید منتقل شود. رایجترین آنها عبارتند از:
- قدیمی شدن یک نوشته و عدم کاربردی بودن آن که میتوانید نوشته را به نوشته مرتبط منتقل کنید.
- تغییرات در ساختار آدرس سایت که باید کاربرانی که به لینکهای قدیمی مراجعه میکنند را به آدرس با ساختار جدید انتقال داد.
- تغییر دامنه سایت.
ریدایرکت ۳۰۲
این نوع از ریدایرکت بر خلاف نوع ۳۰۱ برای زمانهایی است که موقتا بخواهید کاربران را به صفحه دیگری منتقل کنید. مثلا ممکن است یک صفحهای در مورد خدماتی که ارائه میکنید داشته باشید که چند سالی است ظاهر آن را تغییر ندادید، در این حالت میتوانید برای اینکه به صورت کامل سایت را از دسترس خارج نکنید، این صفحه را به یک صفحه مرتبط به صورت موقت منتقل کنید تا پس از اینکه طراحی به اتمام رسید، دوباره به حالت قبل برگردانید. در این حالت اعتبار صفحه در موتورهای جستجو منتقل نمیشود و اعتبار صفحه نیز از بین نخواهد رفت؛ اما باید دقت کنید که مدت ریدایرکت زیاد طولانی نشود.
همانطور که گفتم ریدایرکتها هم به نوعی یک کد وضعیت HTTP از صفحه هستند. در ریدایرکت ۳۰۲ این کد وضعیت برای ورژن ۱.۰ و ۱.۱ کار میکند و مشکلی هم در آن وجود ندارد.
ریدایرکت ۳۰۷
این نوع ریدایرکت هم درست همان ویژگیهای ریدایرکت ۳۰۲ را دارد؛ یعنی برای انتقال موقت استفاده میشود و اعتبار صفحه هم در موتور جستجو به صفحه جدید منتقل نمیگردد. اما تفاوتی که با ریدایرکت ۳۰۲ دارد در این است که این کد وضعیت صرفا برای ورژن ۱.۱ کاربرد دارد. اگر کاربران یا موتورهای جستجو در نسخه HTTP 1.0 وارد آدرس ریدایرکت شده شوند، صفحه انتقال داده نخواهد شد.
فرق ریدایرکت ۳۰۲ و ۳۰۷ چیست؟ کدام بهتر است؟
همانطور که در توضیح ریدایرکت ۳۰۲ و ۳۰۷ عنوان کردم از هر دو برای انتقال کاربر به صفحه دیگر در حالتی استفاده میشود که موقتا بخواهید کاربران را هدایت کنید. قرار نیست اعتبار صفحه به صفحه دیگری منتقل شود که این موضوع را به موتورهای جستجو اعلام میکنید.
اما تفاوت اصلی در اینجاست که در ریدایرکت ۳۰۲ امکان هدایت کاربران روی هر دو نسخه ۱.۰ و ۱.۱ پروتکل HTTP فراهم است در حالی که ریدایرکت ۳۰۷ فقط در نسخه ۱.۱ کد وضعیت انتقال کاربر(Moved Temporarily) را انجام میدهد. بنابراین اگر از ریدایرکت ۳۰۷ استفاده میکنید سعی کنید آن را به ریدایرکت ۳۰۲ تغییر دهید که روی هر دو نسخه HTTP کار میکند.
چطور از ریدایرکت استفاده کنیم؟
برای استفاده از ریدایرکت بسته به اینکه از چه وب سروری استفاده میکنید و برنامه نویسی سایت شما نیز بر پایه کدام زبان است، روشهای متنوعی وجود دارد. اما رایجترین آنها برای سایتهای وردپرسی شامل استفاده از فایل htaccess. و یا استفاده از افزونه در وردپرس است.
روش اول: استفاده از فایل htaccess.
در این روش شما میتوانید آدرسهای خود را برای حالتی که ساختار کلی سایت تغییر یافته استفاده کنید. یعنی مثلا اگر پیش از این یک پیشوند برای نوشتههای خود داشتید حال بخواهید آن را تغییر داده یا اینکه حذف کنید. میتوانید به کمک کدهایی که وجود دارد ریدایرکت را در هر یک از حالتهای ۳۰۱، ۳۰۲ و ۳۰۷ اجرا کنید.
اما مسئله اینجاست که چون فایل htaccess. در هر بار بازدید کاربر از سایت شما لود میشود تا تغییراتی اگر روی آن اعمال شده بر آن اساس سایت لود شود، از طرفی دیگر معمولا این فایل کش نمیشود؛ استفاده از این روش برای زمانهایی که تعداد ریدایرکت زیادی دارید توصیه نمیشود. چرا که بر روی سرعت سایت در زمانی که ریدایرکت باید انجام گیرد تاثیر بسیار زیادی خواهد داشت.
با زیاد شدن درخواستها سرور مدام باید درگیر ریدایرکت کاربران باشد. در چنین شرایطی اگر بتوانید ریدایرکتها را به صورت برنامه نویسی شده و سمت php اجرا کنید نتیجه بهتری خواهید گرفت.
روش دوم: استفاده از افزونه ریدایرکت وردپرس
شما میتوانید با جستجو در مخزن وردپرس دهها افزونه مختلف را برای ریدایرکت صفحات در وردپرس پیدا کنید. یکی از بهترین افزونههای redirection وردپرس است که علاوه بر امکان ریدایرکت این امکان را میدهد تا صفحات ۴۰۴ را شناسایی کرده و با داشتن یک لاگ گزارش از این صفحات، اگر تعداد بازدید چنین صفحاتی بالاست آنها را به صفحات مرتبط ریدایرکت کنید که بازدیدکننده با صفحهای که وجود ندارد مواجه نشود.
رای استفاده از این افزونه کافی است روی دکمه زیر کلیک کرده و آن را در سایت خود نصب کنید. پس از فعال سازی میبینید که مشابه تصویر بالا منویی با نام redirection در منوی ابزارها پیشخوان وردپرس اضافه میشود که به کمک این منو میتوانید ریدایرکت صفحات در وردپرس را مدیریت و شخصی سازی کنید.
Regex در ریدایرکت چه کاربردی دارد؟
regex یا regexp طبق توضیحاتی که در ویکی پدیا داده شده مخفف عبارت regular expression است که از آن برای تطبیق رشتههای منظم در متن استفاده میشود. حال منظور از رشته در اینجا چیست؟ اجازه دهید با مثال شرح دهم. به این چند خط زیر دقت کنید:
https://site.com/tag/TAG_NAME/ https://site.com/category/CATEGORY_NAME/ https://site.com/blog/articles/POST_NAME/
اگر به این سه خط دقت کنید من در اینجا سعی کردم در خط اول آدرس برچسب وردپرس، خط دوم برای دستهبندی وردپرس و در خط سوم ساختار پیوند یکتا برای نوشتهها را نمایش دهم. همانطور که میبینید در این سه خط به ترتیب مقادیر tag، category و articles برای همه صفحات ما یکسان و ثابت هستند.
حالا ممکن است که بخواهید تغییراتی در پیوند یکتا وردپرس خود انجام داده و از نامک دلخواه برای برچسب، دستهبندی و حتی پیشوند نامک نوشتهها استفاده کنید. حالا به دنبال همان خطوط بالا تغییرات را من به شکل زیر در نظر میگیرم.
https://site.com/lable/TAG_NAME/ https://site.com/topic/CATEGORY_NAME/ https://site.com/blog/POST_NAME/
در اینجا من به ترتیب زیر عمل کردم:
- به جای استفاده از نامک tag برای برچسب وردپرس قصد دارم از نامک lable استفاده کنم.
- به جای استفاده از category در ساختار دستهبندی وردپرس میخواهم از نامک topic استفاده کنم.
- به جای اینکه قبل از هر نوشته هم مقدار articles که نشان از این داشت که نوشتههای من نوعی مقاله هستند، حالا میخواهم این نامک را حذف کنم و بعد از blog که یک وردپرس در ساب فولدر است، از همان نام نوشته برای آدرس مطالب استفاد کنم(تا چند سال پیش تصور غلط بر این بود که اگر نوع نوشتهها را برای گوگل مشخص کنید در سئو تاثیر بهتری دارد. برای همین از مقادیری مثل articles برای مقالات یا درج html. در انتهای صفحات که نشان دهند این یک صفحه وب است استفاده میکردند).
حالا که پیوندهای یکتا را تغییر دادم اگر قرار باید برای تکتک صفحاتی که این نوع سه ساختار را دارند، برای یک سایت که ۱۰ دستهبندی دارد، باید ۱۰ لینک ریدایرکت جدا جدا برای هر کدام ایجاد کنم، اگر ۱۰۰ برچسب دارم باید همان تعداد برچسب را برای ساختار جدید آدرس تهیه کنم و اگر هم ۲۰۰ نوشته دارم باید لینک تکتک مطالب را با ساختار جدید تهیه کنم. روشن است که هرچه تعداد بالاتر باشد به مشکل میخوریم.
در اینجا REGEX به شما کمک میکند تا به جای استفاده از این تعداد، صرفا یک ریدایرکت برای هر کدام تعریف کنید. در این صورت من به جای اینکه لازم باشد تک تک ریدایرکتها را درج کنم کافی است به کمک رجکس این کار را به شکل زیر انجام دهم.
https://site.com/tag/(.*)/ => https://site.com/lable/$1/ https://site.com/category/(.*)/ => https://site.com/topic/$1/ https://site.com/blog/articles/(.*)/ => https://site.com/blog/$1/
در اینجا به کمک (.*) مشخص کردیم که اگر بعد از هر ساختار مقداری آمده بود آن را به ساختار آدرس جدید ریدایرکت کن و مقداری که وجود داشته را به کمک $۱ جایگزین کن.
نکته بسیار مهم: استفاده از regex موضوع بسیار مهمی است و وقتی از آن استفاده میکنید باید هر نوع ساختاری از سایت خود را بررسی کنید تا دچار مشکل نگردد. در اینجا نیز تنها یکی از مثالهای regex را معرفی کردم. بنابراین اگر به کلی تغییراتی در ساختار پیوند یکتا سایت خود دادهاید، حتما از یک فرد متخصص برای استفاده درست از regex ها کمک بگیرید. چرا که این روش برای همهی آدرسها جواب نمیدهد.
چه زمانی باید از ریدایرکت دامنه استفاده کنیم؟
حالا که تا اینجا با انواع ریدایرکت، نحوه استفاده و حالت رجکس آشنا شدید ممکن است این سوال برایتان پیش بیاید که اگر قرار باشد آدرس سایت خود را به دامنهی دیگری تغییر دهیم، باید از کدام نوع ریدایرکت و به چه روشی استفاده کرد؟
برای این حالت چون تغییر دامنه دائمی است حتما باید از ریدایرکت ۳۰۱ استفاده کرد. مگر اینکه بخواهید مثلا سایت خود را از نظر برنامه نویسی به کلی تغییر دهید که در این حالت برخی سایتها برای اینکه از انتقال اطلاعات و اینکه برنامه نویسی سایت در همه بخشها به درستی انجام گرفته از ریدایرکت ۳۰۲ برای مدت کوتاهی استفاده میکنند تا پس از تست و تایید نهایی، کدنویسی سایت را به صورت کلی جایگزین کنند.
اما اگر قرار باشد برای همیشه از آن استفاده کنید، باید از ریدایرکت ۳۰۱ بر روی دامنه مبدا استفاده کنید. بهترین حالت استفاده هم همان استفاده از کدهای ریدایرکت در فایل htaccess. است. از آنجایی هم که در برخی وب سرورها این فایل کش نمیشود و در هر بار بازدید کاربران این فایل بررسی خواهد شد، بهتر است که به کمک شرکت هاستینگ خود کاری کنید که کش را روی این فایل فعال کنید تا در هر بار بازدید از دامنه توسط بازدیدکنندههای ثابت ضرورتی به بررسی دوباره این کد نباشد و ریدایرکت نیز در زمان کوتاهتری انجام گیرد.
جمع بندی
در این مقاله جامع به بررسی redirect پرداخته و با بررسی انواع ریدایرکت دامنه که برای حالتهای ۳۰۱، ۳۰۲ و ۳۰۷ وجود دارند به شما آموزش دادم که در شرایط مختلف باید از کدام نوع ریدایرکت برای صفحات خود استفاده کنید. سپس به معرفی تفاوتهای هر کدام از این نوع ریدایرکتها پرداخته و در نهایت نیز به معرفی روشهایی برای استفاده از ریدایرکت پرداختم.
از آنجایی که استفاده از ریدایرکت در سایت موضوع مهمی است و اگر به درستی از آن استفاده نکنید، سئو سایت شما را تحت تاثیر قرار خواهد داد سعی کردم روشهایی که استفاده از آنها سادهتر است را معرفی کنم. در پایان نیز به معرفی استفاده از REGEX در ریدایرکت صفحات پرداختم که به کمک آن میتوانید ساختارهای منظم خود را ریدایرکت کنید.
در صورتی که هر سوال یا مشکلی در خصوص استفاده از ریدایرکت در سایت دارید، میتوانید از بخش نظرات همین مقاله ارسال کنید تا شما را راهنمایی کنم. موضوع ریدایرکت بیش از این پیچیده است که در اینجا سعی شد کلیت آن و میزان قابل توجهی از آن که در سایتها استفاده میشود مورد بررسی قرار گیرد.