ریدایرکت ۳۰۱ و ۳۰۲ چه فرقی دارند؟ راهنمای ریدایرکت و ریرایت URL در CDN
ریدایرکت ۳۰۱، ۳۰۲، ۳۰۷ و ۳۰۸ را کِی باید استفاده کرد، تفاوتش با ریرایت URL چیست و چطور www، HTTPS و صفحههای جابهجاشده را بدون افت سئو منتقل کنیم.
صفحهای را جابهجا کردهاید یا آدرسها را عوض کردهاید، و حالا لینکهای قدیمی (در گوگل، در شبکههای اجتماعی، در ایمیلهای قدیمی مشتریها) به خطای ۴۰۴ میرسند. راهحل ریدایرکت است، اما همینجا چند سؤال پیش میآید: ۳۰۱ یا ۳۰۲؟ ریدایرکت یا ریرایت؟ و چرا بعد از تغییر هنوز رفتار قدیمی را میبینم؟ این مقاله به همه اینها جواب میدهد و نشان میدهد در nsin هر کدام را چطور بسازید.
ریدایرکت چیست و چه زمانی لازم است؟
ریدایرکت بازدیدکننده را از یک آدرس به آدرس دیگر میفرستد. طبق مستندات ریدایرکت nsin معمولاً در این موارد سراغش میروید:
- صفحهای را جابهجا یا تغییر نام دادهاید و میخواهید لینکهای قدیمی کار کنند.
- میخواهید
www.example.comوexample.comیکی شوند. - میخواهید همه بازدیدها از
http://بهhttps://بروند. - یک لینک کوتاه دارید که باید به جای دیگری اشاره کند.
ریدایرکت در nsin پیش از آنکه درخواست به سرور شما برسد اجرا میشود. برای ساختنش در پنل به Rules بروید، Add Rule و بعد Redirect را بزنید، آدرسهای مورد نظر را در بخش When بنویسید و مقصد را در بخش Then بگذارید.
۳۰۱، ۳۰۲، ۳۰۷ و ۳۰۸؛ کدام را انتخاب کنیم؟
چهار نوع ریدایرکت در دسترس است:
| نوع | کد | کِی استفاده کنیم |
|---|---|---|
| موقت | ۳۰۲ | حراج، تعمیر، آزمایش، یا وقتی هنوز در حال تست هستید. |
| دائمی | ۳۰۱ | جابهجایی همیشگی؛ موتورهای جستوجو لینک را بهروز میکنند. |
| موقت، با حفظ متد | ۳۰۷ | مثل ۳۰۲ اما POST همان POST میماند. برای فرمها و API. |
| دائمی، با حفظ متد | ۳۰۸ | مثل ۳۰۱ اما POST همان POST میماند. |
قاعده ساده این است: اگر آدرس برای همیشه عوض شده، دائمی بزنید تا اعتبار آدرس قدیمی به آدرس جدید منتقل شود؛ اگر موقت است، موقت. اگر پشت آدرس، فرم یا API دارید که با POST کار میکند، نسخههای حفظکننده متد (۳۰۷ و ۳۰۸) را بگیرید.
احتیاط: مرورگرها ریدایرکت دائمی را سخت کش میکنند، گاهی تا زمانی که بازدیدکننده تاریخچهاش را پاک کند. اول با نوع موقت امتحان کنید و وقتی مطمئن شدید به دائمی تغییرش دهید.
مسیر و کوئری را نگه دارید یا نه؟
دو گزینه مهم کنار هر ریدایرکت هست:
- نگه داشتن کوئری (Keep the query string): پارامترهایی مثل
?utm_source=xبه مقصد اضافه میشوند. بهصورت پیشفرض روشن است. - نگه داشتن مسیر (Keep the path): مسیر اصلی به مقصد اضافه میشود. با این گزینه یک قانون میتواند کل سایت را جابهجا کند، یعنی
example.com/*بهnewsite.com/*. برای ریدایرکت یک صفحه مشخص خاموشش بگذارید.
سه ریدایرکت که تقریباً هر سایتی لازم دارد
۱. اجبار HTTPS. از http:// به https://، از نوع دائمی. nsin در بخش پیشنهادها هم اگر ببیند بازدیدکنندهها با http:// میآیند و قانونی برای رفتن به https:// نیست، هشدار «ریدایرکت HTTPS» نشان میدهد. گواهی SSL رایگان را هم در راهنمای SSL رایگان ببینید.
۲. www به دامنه ساده (یا برعکس). از نوع دائمی و با نگه داشتن مسیر. یک نسخه را انتخاب کنید و دیگری را به آن بفرستید تا گوگل دو نسخه از یک سایت نبیند.
۳. صفحه قدیمی به صفحه جدید. مثلاً /about-us به /about، دائمی. این همان کاری است که لینکهای قدیمی و رتبه صفحه را حفظ میکند.
یک نکته فنی مهم: ریدایرکت www فقط وقتی کار میکند که رکورد DNS مربوط به www پراکسیشده باشد. رکورد غیرپراکسی از nsin عبور نمیکند و قانون هرگز اجرا نمیشود. ساختن ریدایرکتهای استاندارد این را برایتان تنظیم میکند، و اگر nsin بگوید www پراکسی نیست، آن را عوض کنید. جزئیاتش در مدیریت رکوردهای DNS و راهنمای رکوردهای DNS آمده است.
ریرایت URL چیست و چه فرقی با ریدایرکت دارد؟
ریدایرکت آدرس را در نوار مرورگر عوض میکند. ریرایت نه: آدرسی را که nsin از سرور شما میخواهد عوض میکند، اما بازدیدکننده همان چیزی را میبیند که تایپ کرده بود.
| نوار آدرس بازدیدکننده | رفتوبرگشت اضافه | |
|---|---|---|
| ریدایرکت | عوض میشود | دارد |
| ریرایت | همان میماند | ندارد |
ریرایت وقتی به کار میآید که:
- سایتتان جابهجا شده ولی آدرسهای عمومی قدیمی باید بیصدا کار کنند.
- یک آدرس تمیز عمومی (
/blog/hello) باید به آدرس داخلی شلوغتری (/index.php?p=hello) برسد. - یک بخش از سایت روی اپلیکیشن دیگری اجرا میشود و مسیرها باید با هم جور شوند.
مثال مستندات: قانونی با مسیر /downloads/* که به سرور /files/* را بفرستد. درخواست /downloads/report.pdf فایل /files/report.pdf را میگیرد، ولی نوار آدرس همچنان /downloads/report.pdf را نشان میدهد.
برای ساختن: Rules ← Add Rule ← URL Rewrite. مسیر مطابقت را با wildcard (مثل /old/*) یا regex مشخص میکنید، مسیری را که به سرور فرستاده میشود مینویسید، و رفتار کوئری را از بین نگه داشتن، جایگزین کردن یا حذف انتخاب میکنید. بخش Exclude هم برای بیرون گذاشتن چند مسیر از یک تطبیق گسترده است.
احتیاط: عبارتهای regex را اول روی یک مسیر باریک امتحان کنید. کلید روشن/خاموش قانون برای وقتی است که چیزی عجیب به نظر میرسد.
ریدایرکت یا ریرایت؟
خلاصهاش: ریرایت را بزنید وقتی میخواهید لینکهای قدیمی بیصدا کار کنند. ریدایرکت را بزنید وقتی میخواهید آدمها و موتورهای جستوجو به آدرس جدید بروند و آن را یاد بگیرند. برای جابهجایی صفحهای که در گوگل ایندکس شده، معمولاً ریدایرکت دائمی درست است.
ترتیب و محدوده قانونها
دو قانون همنوع میتوانند هر دو به یک آدرس بخورند. در این حالت قانون بالاتر در فهرست برنده است و با کشیدن میتوانید ترتیب را عوض کنید. قانونها را میشود به رکوردها، نام میزبان و مسیر محدود کرد؛ فهرست Exclude یعنی «همهجا بهجز»، مثلاً /* را شامل کنید و /health را کنار بگذارید. همه اینها در مرور قوانین توضیح داده شده است.
چند مشکل رایج
ریدایرکت من تا بینهایت میچرخد
بخش When و Then به هم اشاره میکنند. مسیر مقصد را از قانون مستثنی کنید.
تغییر دادم ولی هنوز رفتار قدیمی را میبینم
مرورگر ریدایرکت دائمی را کش کرده است. در یک پنجره خصوصی امتحان کنید.
ریرایت من هیچ کاری نمیکند
بررسی کنید رکورد DNS مربوطه پراکسیشده باشد؛ قانونها فقط روی ترافیکی اجرا میشوند که از nsin عبور میکند.
ریدایرکت و سئو
برای سئو سه چیز مهم است: برای جابهجایی همیشگی از ریدایرکت دائمی استفاده کنید، www و https را روی یک نسخه یکتا جمع کنید، و زنجیره ریدایرکت نسازید (آدرس قدیمی مستقیم به آدرس نهایی برود). برای نگاه کلیتر به اثر CDN روی رتبه، چرا CDN به سئو کمک میکند را بخوانید.
شروع کنید
برای ساختن اولین قانون لازم نیست چیزی نصب کنید: دامنهتان را روی CDN nsin بیاورید، به بخش Rules بروید و قوانین ترافیک را امتحان کنید. برای ساخت حساب و افزودن دامنه به پنل nsin بروید.
