آشنایی با ریدایرکت ۳۰۱ و ۳۰۲
احتمالا برای شما هم پیش آمده که آدرس یک سایت و یا صفحه ای از آن را وارد می کنید اما به آدرسی دیگر منتقل می شوید. این عمل ریدایرکت (Redirect) نام دارد و به معنی انتقال به جایی دیگر می باشد. در واقع ریدایرکت راهی برای انتقال کاربران و موتورهای جستجو به یک URL متفاوت از URL درخواستی آن ها می باشد. برای مثال زمانی که شما آدرس Example.com را وارد کنید در صورت استفاده از ریدایرکت شما به آدرس newExample.com انتقال می یابید.
چه زمانی از ریدایرکت استفاده کنیم؟
زمانی از ریدایرکت استفاده می کنیم که با یکی از موارد زیر مواجه شویم:
- URL سایت شما از کار افتاده است.
- هنگامی که آدرس تمام یا برخی از صفحات و یا آدرس سایت شما تغییر می کند.
- صفحه شما با مشکل مواجه شده و در حال تعمیر آن هستید و می خواهید در زمان تعمیر کاربران به صفحه ای دیگر منتقل شوند.
شما باید به موقع و با دلیل مناسبی از ریدایرکت استفاده کنید زیرا استفاده اشتباه از ریدایرکت می تواند SEO سایت شما را با مشکل مواجه کند.
ریدایرکت ۳۰۱ چیست؟
به این صورت است که یک پیام برای موتورهای جستجو ارسال می شود تا به آن ها اطلاع دهد که سایت و یا صفحه شما به طور دائم منتقل شده است. فرض کنید آدرس یک صفحه پر بازدید و یا سایت شما تغییر کند. شما با استفاده از ریدایرکت ۳۰۱ نه تنها کاربران را به آدرس جدید منتقل می کنید بلکه رتبه و امتیاز صفحه قبلی خود را نیز تا حد بسیار زیادی حفظ می کنید. در واقع ۳۰۱ یک Status Code یا کد وضعیت می باشد که موتور جستجو و یا مرورگر پس از خواندن این کد متوجه می شود که صفحه شما به آدرس دیگری منتقل شده است و بلافاصله آدرس جدید را نمایش می دهد.
چه زمانی باید از ریدایرکت ۳۰۱ استفاده کنیم؟
اصولا ریدایرکت ۳۰۱ برای انتقال دائم می باشد و استفاده از آن برای انتقال های موقت مناسب نیست. به طور کلی موارد استفاده از ریدایرکت ۳۰۱ به صورت زیر می باشد:
- تغییر دامنه اصلی سایت
- داشتن چندین دامنه برای سایت مثلا google.com و google.com
- دریافت گواهی SSL و تغییر از http به https
- تغییر آدرس یک صفحه
ریدایرکت ۳۰۲ چیست؟
به این صورت است که یک پیام برای موتورهای جستجو ارسال می شود تا به آن ها اطلاع دهد که سایت و یا صفحه شما به طور موقت منتقل شده است. تصور کنید که یکی از صفحات شما برای مدتی از دسترس خارج شده است. در این صورت کاربر با ارور ۴۰۴ مواجه می شود. این صفحات پس از مدتی از پایگاه داده موتورهای جستجو حذف می شوند و رتبه بندی و امتیازات آن نیز ار بین می رود. برای جلوگیری از این کار از ریدایرکت ۳۰۲ استفاده می شود به این صورت که موتور جستجو پس از دریافت کد وضعیت ۳۰۲ متوجه می شود که صفحه شما برای مدتی از دسترس خارج شده و آن را از پایگاه داده پاک نمی کند و رتبه و امتیازات آن صفحه را از بین نمی برد.
چه زمانی باید از ریدایرکت ۳۰۲ استفاده کنیم؟
اصولا ریدایرکت ۳۰۲ برای انتقال موقت انجام می شود و نباید از آن برای انتقال دائم استفاده کرد. به طور کلی موارد استفاده از ریدایرکت ۳۰۲ به صورت زیر می باشد:
- از دسترس خارج شدن موقت یک صفحه
- گرفتن فیدبک از کاربران برای یک مطلب جدید بدون تاثیر گذاشتن در رتبه سایت
- ارائه تخفیف و فروش های ویژه در وب سایت به این صورت که کاربران به صفحه تخفیف منتقل می شوند.
چگونه از ریدایرکت ۳۰۱ و ۳۰۲ استفاده کنیم؟
امکان ایجاد ریدایرکت با روش های مختلفی فراهم می باشد، وب سرورهای مختلف زیر هر کدام راه و روش به خصوص خود را در این زمینه دارند. وب سرورهای Apache و LiteSpeed هر دو از فایل htaccess به عنوان تنظیمات و Rewrite های یکسان استفاده می کنند. نمونه ای از پرکاربردترین انتقال ها را با استفاده از فایل htaccess برای شما آورده ایم.
انتقال از یک صفحه به صفحه دیگر
1 | Redirect 301 /pageA /pageB |
انتقال یک صفحه از سایت به صفحه دیگر در سایت دیگر
1 | Redirect 301 /pageA /http://Example.ir/pageB |
اضافه کردن www به آدرس صفحات سایت
1 2 3 | RewriteEngine on RewriteCond %{HTTP_HOST} ^Example.com [NC] RewriteRule ^(.*)$ http://www.Example.com/$1 [L,R=301,NC] |
حذف www از آدرس صفحات سایت
1 2 3 | RewriteEngine on RewriteCond %{HTTP_HOST} ^www.Example.com [NC] RewriteRule ^(.*)$ http://Example.com/$1 [L,R=301,NC] |
انتقال به آدرس جدید سایت
1 2 3 4 | RewriteEngine on RewriteCond %{HTTP_HOST} ^Exapmle.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.Example.com [NC] RewriteRule ^(.*)$ http://Example.ir/$1 [L,R=301,NC] |
انتقال سایت از http به https
1 2 3 4 | RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteCond %{HTTP_HOST} ^(www\.)?Example\.com RewriteRule ^(.*)$ https://Example.com/$1 [R,L] |
انتقال پسوند خاص به پسوند دیگر (برای مثال .php را به .html منتقل می کنیم)
1 2 3 | RewriteEngine On RewriteCond %{REQUEST_URI} .php$ RewriteRule ^(.*).php$ /$1.html [R=301,L] |