بلاگ
ریدایرکت لینک چگونه انجام می شود؟

ریدایرکت لینک یا تغییر مسیر نشانی وب به فرآیندی گفته می‌شود که در آن یک آدرس وب سایت مخاطب را به نشانی دیگری هدایت می‌کند.

ریدایرکت لینک روشی برای هدایت کاربران و موتورهای جستجو به آدرس‌های دیگر از جایی که در ابتدا در خواست شده، می‌ باشد. رایج ترین ریدایرکت‌های استفاده شده انواع ۳۰۱، ۳۰۲ و متا تگ رفرش (Meta Refresh) هستند. این ریدایرکت‌ها به طور خلاصه به صورت زیر هستند:

  • ریدایرکت ۳۰۱ در این روش کاربر به طور کاملا به دامنه اصلی هدایت می‌شود. این روش برای بهینه سازی موتورهای جستجو یا سئو توصیه می‌شود.
  • ریدارکت ۳۰۲ در این روش کاربر موقتا به دامنه مورد نظر هدایت می‌شود.
  • متا تگ رفرش

ریدایرکت ۳۰۱ یا انتقال دائم

ریدایرکت ۳۰۱ به ریدایرکتی دائمی گفته می‌شود که در آن چیزی بیش از نود درصد از ارزش لینک (قدرت رتبه بندی) به صفحه نهایی منتقل می‌شود. ۳۰۱ به وضعیت کد HTTP (HTTP status code) که در این نوع ریدایرکت استفاده می‌شود اشاره می‌کند. در بیشتر موارد، ریدایرکت ۳۰۱ بهترین روشی است که می‌توان برای وب سایت‌ها مورد استفاده قرار داد.

ریدایرکت ۳۰۲

بعضی از کارکنان گوگل اطلاعاتی را منتشر کرده اند که نشان می‌دهند در بعضی موارد تفاوتی میان ریدایرکت ۳۰۱ با ۳۰۲ وجود ندارد، اما شواهد نشان می‌دهند که موتورهای جستجو و مرورگرها در زمانی که می‌خواهید به طور دائمی به انتقال دامنه بپردازید، اعتبار بیشتری به استفاده از ریدایرکت ۳۰۱ می‌دهند.

اینترنت بر روی پروتکلی فعالیت می‌کند که پروتکل امن انتقال ابرمتن (HTTPS) نام دارد، این پروتکل نحوه عملکرد آدرس‌های وب را مشخص می‌کند. این پروتکل دو نسخه اصلی دارد، ۱.۰ و ۱.۱. در نسخه اول، ریدایرکت ۳۰۲ به کد وضعیت (status code) انتقال موقت اشاره دارد. این موضوع در پروتکل ۱.۱ به وضعیت یافت شد تغییر یافته است.

ریدایرکت ۳۰۷ یا انتقال موقت (تنها در نسخه HTTP 1.1)

ریدایرکت ۳۰۷ جایگزین ریدایرکت ۳۰۱ در پروتکل ۱.۱ محسوب می‌شود. در حالی که بیشتر کراولر‌ها (ربات‌های موتورهای جستجو) در بعضی موارد با ریدایرکت ۳۰۷ برخوردی مشابه ریدایرکت ۳۰۲ دارند، در بیشتر موارد بهتر است از ریدایرکت ۳۰۱ برای انتقال استفاده شود.

تنها زمانی بهتر است از ریدایرکت ۳۰۷ استفاده شود که محتوا تنها به صورت موقتی منتقل می‌شود (نظیر زمان تعمیرات وب سایت) و سرور توسط موتورهای جستجو در حال حاضر به صورت منطبق با پروتکل ۱.۱ شناسایی شده باشد.

از آن جایی که تعیین این که موتورهای جستجو صفحه وب را به صورت منطبق با پروتکل تشخیص داده باشند یا خیر امری غیر ممکن است، به طور کلی توصیه می‌شود از ریدایرکت ۳۰۲ برای محتوایی که می‌خواهید به طور موقت منتقل کنید استفاده شود.

متا تگ رفرش (Meta Refresh)

متا تگ رفرش به نوعی از ریدایرکت گفته می‌شود که در سطح صفحات (و نه سطح سرور) اتفاق می‌افتد. این نوع ریدایرکت معمولا کند تر است و در تکنیک‌های سئو توصیه نمی شوند. 

این نوع ریدایرکت معمولا با شمارش پنج ثانیه ای و نوشته‌هایی همراه می‌شود که می‌گویند در صورتی که ظرف پنج ثانیه به صفحه مورد نظر هدایت نشدید بر این لینک کلیک کنید. 

متا تگ رفرش‌ها نیز میزانی از ارزش لینک را منتقل می‌کنند، اما به عنوان یک تاکتیک سئو بهینه توصیه نمی شوند زیرا کاربرد آنها دشوار است و ارزش کامل لینک منتقل نمی‌شود.

بهترین روش ریدایرکت لینک برای سئو

هدایت یک صفحه وب به صفحه دیگر اقدام رایجی در وب سایت‌ها محسوب می‌شود. در زمان انجام این کار، توجه به بهترین راه کارهای سئو برای حفظ ارزش سئو اهمیت دارد.

مصداق اول از این موضوع با یک سناریو ساده همراه می‌شود: یک نشانی نیاز به هدایت دائمی به یک نشانی دیگر دارد.

در این جا چندین گزینه برای مدیران وب سایت وجود دارد، اما به طور معمول، ریدایرکت ۳۰۱ برای کاربران و موتورهای جستجو ترجیح دارد. 

استفاده از ریدایرکت ۳۰۱ به این معنی است که مرورگر و ربات‌های موتور جستجو در می‌یابند که صفحه به طور دائم جابجا شده است. 

موتورهای جستجو این مسئله را به دو شکل تعبیر می‌کنند، ابتدا این که موقعیت صفحه تغییر کرده است، اما محتوا یا نسخه بروزرسانی شده از آن در آدرس جدید قابل دست یابی است. 

ریدایرکت لینک 301 - ریدایرکت دائمی

موتورهای جستجو هر وزن لینکی که صفحه اصلی داشته است را در آدرس جدید و به صورت نمودار زیر دریافت می‌کنند:

بدانید زمانی که به جابجایی یک صفحه از یک آدرس به آدرس دیگر می‌پردازید، موتورهای جستجو زمانی را صرف کشف ریدایرکت ۳۰۱، شناسایی آن و اعتبار دهی به صفحه جدید با تکیه بر رتبه بندی و اعتماد بر صفحه پیشین می‌کنند.

این فرآیند زمانی طولانی تر می‌شود که عنکبوت‌های موتورهای جستجو (منظور ربات‌های کراولر) به ندرت به سراغ صفحه وب پیشین رفته باشند یا آدرس جدید به خوبی بارگذاری نشود.

گزینه‌های دیگر برای ریدایرکت، نظیر ریدایرکت ۳۰۲ و متا تگ رفرش، جایگزین‌های ضعیف تری هستند، زیرا این روش‌ها به طور کامل رتبه بندی و ارزش صفحه برای موتورهای جستجو را منتقل نمی کنند و از این نظر از ریدایرکت ۳۰۱ ضعیف تر هستند.

انتقال محتوا زمانی پیچیده تر می‌شود که یک سایت به طور کامل دامنه خود را تغییر می‌دهد یا محتوا از یک دامنه به دیگری منتقل می‌شود.

راهنمای عملی انواع ریدایرکت

در ادامه، به صورت عملی و بر اساس مثال واقعی، نحوه ریدایرکت کردن برگه ها و دامنه را در شرایط مختلف آموزش می دهیم. این بخش از مقاله از سایت Moz.com برداشته شده و تجربیات واقعی این برند است.

ریدایرکت‌های ۳۰۱ در آپاچی

زمانی که ما اولین وب سایت خود با عنوان seomoz.org را منتشر کردیم، این وب سایت در آدرس www.socengine.com/seo/ میزبانی می‌شد و بر روی این دامنه میزبانی انجام نمی گرفت. زمانی که توسعه دهنده‌های اصلی سایت را به سرور اختصاصی خود منتقل می‌کردند، تمایل داشتند که این سایت به جای زیرمجموعه سایت socengine از طریق دامنه خود قابل دست یابی باشد.

توسعه دهنده‌های تیم ما تمایل داشتند بازدید کننده‌ها با مراجعه به سایت www.socengine.com/seo/ به آدرس www.seomoz.org ریدایرکت شوند. این هدایت نیاز به همگام سازی چندین فایل و نام فولدر و انجام ریدایرکت ۳۰۱ برای تحقق اهداف سئو داشت. همچنین نیاز بر این بود که http://seomoz.org نیز هدایت شود، این موضوع برای اهداف زیبایی شناختی سایت و جلوگیری از خطاهای کانونی سازی (canonicalization) اهمیت داشت.

ریدایرکت لینک با کد 301

راه حل

ساده ترین رویکرد انجام این پروژه افزودن ریدایرکت‌های ۳۰۱ به کد PHP پشتیبان seomoz.org با استفاده از عملگر هدر (header) بود. با این اوصاف، تیم توسعه دهنده با استفاده از قدرت ماژول بازنویسی ماد آپاچی (apache module mod_rewrite)، توانست الگوهای ویژه را برای تمامی فولدرها منطبق سازد و آنها را بدون نیاز به دستکاری در تمام اسکریپت‌های PHP به آدرس‌های جدید خود هدایت کند.

کد ریدایرکت ۳۰۱

برای انجام این کار، نیاز به نصب ماژول بازنویسی ماد آپاچی (apache module mod_rewrite) در وب سرور بود. بیشتر نصب‌های آپاچی به طور پیش فرض بازنویسی ماد (mod_rewrite) را در خود دارند. سرور اصلی SEOmoz نیز با لینکوس نسخه distribution FreeBSD عمل می‌کرد و بازنویسی ماد (mod_rewrite) به طور پیش فرض بر روی آن قرار داشت. 

برای این که بررسی کنیم این ماژول در سرور وجود دارد، دولوپر می‌تواند با اضافه کردن خط زیر به فایل تنظیمات (configuration) آپاچی یا یک فایل .htaccess قابل اجرا، از عملکرد درست آن مطمئن شود:

RewriteEngine On

زمینه (Context)

ماژول بازنویسی ماد (mod_rewrite) در هر سرور یا هر پوشه عمل می‌کند. زمینه هر سرور نیازمند این است که توسعه دهنده فایل تنظیمات (configuration) آپاچی (httpd.conf) را تغییر دهد. زمینه پوشه از فایل‌های .htaccess ای استفاده می‌کند که در هر فولدر وجود دارند و کاربر می‌خواهد به تغییر آنها بپردازد. اگر وب مستر قادر به دست یابی به httpd.conf نباشد، می‌تواند از فایل‌های .htaccess استفاده کند.

Regular Expressions (aka Regexes)

در ویکی پدیا بیان مسئل زیر در مورد regular expression گفته شده است:

regular expression به رشته ای گفته می‌شود که به توصیف یا مطابقت مجموعه ای از رشته‌ها (strings) بر اساس مجموعه قواعد ترکیب (syntax) مشخص می‌پردازد. regular expression توسط ادیتورهای متنی و ابزارهای مختلف برای جستجو و دست کاری بدنه متن بر اساس الگوهای مشخص به کار می‌روند.

استفاده از regular expression مهارتی ارزشمند برای برنامه نویس‌ها و مدیران سیستم‌ها محسوب می‌شود. برای ریدایرکت آدرس بر اساس مثالی که پیش از این شرح دادیم، درک مفاهیم بنیادین Regex ها اهمیت زیادی دارد.

فهرست بعدی لیستی از کاراکترها و اپراتورهایی ارائه می‌دهد که در Regex‌ های مربوط به حل مشکل فوق به کار رفته اند:

  • dot . تطابق پریودها در هر چیز
  • Star * تطابق ستاره در صفر مورد یا بیشتر از کاراکترهای پیشین
  • Plus + تطابق علامت جمع در یک مورد یا بیشتر از کاراکترهای پیشین
  • parentheses () بسته بودن پرانتزها ، بسته بودن پرانتزها باعث می‌شود مقادیری (Values) که در پرانتز هستند به ذخیره سازی چیزی بپردازند که از نظر متغیری که در آینده استفاده می‌شود هماهنگ هستند، این موضوع با نام ارجاع به قبل (back-reference) شناخته می‌شود
  • Line (|) بسته بودن (value1|value2)، بستن دو یا چند مقدار (Value) در پرانتز و جدا سازی آنها با کاراکتر | مشابه این است که بگوییم "مقدار یک یا مقدار ۲ را منطبق سازیم (matching)".

ریدایرکت فایل‌ها یا فولدرها از یک دامنه به دامنه دیگر

توسعه دهنده اصلی در Moz نیازمند ریدایرکت کردن از سرور قدیمی به سرور جدید با حفظ نام‌های پیشین بود.

مثال

Redirect: http://www.socengine.com/seo/s… To: /somefile.php

راه حل

برای انجام این کار کافی است دستور بعدی را به فایل‌های موجود در سرور socengine.com اضافه کنید:

RedirectMatch 301 /seo/(.*) /$1

توضیح

در این جا از Regex به صورت /seo/(.*)  استفاده شده است، این دستور به آپاچی می‌گوید که فولدر سئو با صفر مورد یا بیشتر از کاراکترهای پیشین انطباق دهد. دقت کنید که در اطراف .* از پرانتز استفاده شد، این موضوع به آپاچی می‌گوید که رشته (string) انطباق یافته را به صورت یک مرجع پیشین (back-reference) ذخیره کند. این مرجع پیشین در انتهای آدرسی قرار می‌گیرد که آدرس اولیه به آن هدایت شده است و در این جا به صورت $۱ نمایش داده شده است.

ریدایرکت نام‌ های میزبان کانونیکال (Canonical)

توسعه دهنده اصلی سایت Moz نیاز به ریدایرکت هر درخواستی داشت که با نام دامنه www.seomoz.org آغاز نمی شد، تا بدین ترتیب دامنه‌هایی که در آنها www قرار نداشت نیز لحاظ شوند. این اقدام تنها برای افزایش زیبایی انجام نگرفت، بلکه برای جلوگیری از خطاهای کانونی سازی (canonicalization) نیز ضرورت داشت.

Redirect: http://seomoz.org/

To: http://www.seomoz.org/

Redirect: http://mail.seomoz.org/

To: http://www.seomoz.org

Redirect: http://seomoz.org/somefile.php

To: http://www.seomoz.org/somefile

راه حل

کافی است برای رفع مشکل دستورات بعدی اضافه شوند:

RewriteCond %{HTTP_HOST} *!^www*.seomoz\.org [NC]

 

RewriteRule (.*) http://www.seomoz.org/$1 [L,R=301]

توضیح

این دستور به آپاچی می‌گوید به بررسی میزبانی بپردازد که بازدیدکننده می‌خواهد به آن دسترسی پیدا کند و اگر این میزبان با www.seomoz.org برابر نبود، به آن ریدایرکت کند. 

علامت تعجب موجود (!) پیش از نام سایت، مقایسه را بی اثر می‌کند و می‌گوید: “اگر میزبان آدرس www.seomoz.org نیست، آن گاه عمل RewriteRule را انجام بده”. در مورد ما، RewriteRule آدرس‌های اشتباه را به www.seomoz.org هدایت می‌کند، در حالی که این عمل همان فایلی را که در مرجع پیشین (back-reference) درخواست شده است را در اختیار قرار می‌دهد.

ریدایرکت بدون حفظ نام فایل

چندین فایلی که در سرور قدیمی وجود داشته اند، در سرور جدید حاضر نخواهند بود. به جای حفظ نام‌های فایل در ریدایرکت (که موجب خطای ۴۰۴- یافت نشد در سرور جدید می‌شود)، فایل‌های قدیمی باید در آدرس اصلی (root) دامنه جدید ریدایرکت شوند.

Redirect: http://www.socengine.com/seo/s

To: http://www.seomoz.org

راه حل

برای انجام این کار کافی است دستور بعدی افزوده شود:

RedirectMatch 301 /seo/someoldfile.php http://www.seomoz.org 

توضیح

با حذف تمامی پرانتزها، تمامی درخواست‌های /seo/someoldfile.php  باید به آدرس root از http://www.seomoz.org ریدایرکت شوند.

ریدایرکت GET String

در بعضی از اسکریپت‌های PHP نام‌های متفاوتی وجود دارند و با این حال GET String ثابت باقی می‌ماند. توسعه دهنده‌های Moz نیاز به ریدایرکت بازدیدکننده‌ها به اسکریپت PHP جدید ضمن حفظ این GET string‌ها داشتند. GET string به مجموعه از کاراکترها گفته می‌شود که بعد از یک نام فایل در آدرس قرار می‌گیرند و برای انتقال اطلاعات به یک صفحه وب به کار می‌روند. مثالی از GET string در آدرس /myfile.php?this=that&foo=bar به صورت ?this=that&foo=bar خواهد بود.

Redirect: http://www.socengine.com/seo/c…

To: http://www.seomoz.org/artcat.p…

راه حل

برای حل این مسئله کافی است دستور زیر را اضافه کنید:

RedirectMatch 301 /seo/categorydetail.php(.*) http://www.seomoz.org/artcat.php$1

توضیح

بار دیگر در این دستور Regexی به صورت (.*) مشاهده می‌کنید، این Regex به آپاچی می‌گوید به انطباق صفر مورد یا بیشتر از هر کاراکتر بپردازد و سپس آن را به صورت یک مرجع پیشین (back-reference) $1 ذخیره کند. از آن جایی که یک $۱ بعد از /seo/categorydetail.php وجود دارد، اکنون Get string به این فایل PHP جدید ریدایرکت می‌شود.

ریدایرکت زمانی که پسوندهایس فایل را تغییر می‌دهید

در سناریو اصلی، پوشه یا فایل‌هایی وجود دارند که در سرور قبلی هستند و از ترکیبی از HTML و PHP ساخته شده اند. در سرور جدید، این فایل‌ها کاملا PHP خواهند بود و نیاز به ریدایرکت منطق دارند تا نشانی‌های پیشین به طور کامل به افزونه جدید تغییر یابد.

Redirect: http://www.socengine.com/seo/g…

To: http://www.seomoz.org/articles…

Redirect: http://www.socengine.com/seo/g…

To: http://www.seomoz.org/articles…

راه حل

برای حل این مسئله کافی است دستور زیر را اضافه کنید:

RedirectMatch 301 /seo/guide/(.*)\.(php|html) http://www.seomoz.org/articles/$1.php

توضیح

(.*) به تطبیق صفر مورد یا بیشتر از هر کاراکتر و ذخیره سازی آن به صورت یک مرجع پیشین (back-reference) $1 می‌پردازد. \.(php|html)  به آپاچی می‌گوید که به انطباق یک دوره چه با پسوندهای PHP و چه Html بپردازد و آن را به صورت مرجع پیشین (back-reference) $2 ذخیره کند (اگر چه این موضوع در این مثال استفاده نشده است).

به پریود گریخته با \ دقت کنید. این دستور برای حصول اطمینان از عدم تفسیر پریود به صورت هر کاراکتر توسط آپاجی اضافه شده است، و در واقع به یک پریود واقعی اشاره ندارد.  بستن عبارت PHP یا Html و جدا کردن آنها با کاراکتر “|” به این معنی است که به هماهنگ سازی هر کدام از مقادیر (values) پرداخته شود. بنابراین، اگر (php|html|css|js|jpg|gif) ، Regex به این معنی است که تطابق برای هر فایلی با دامنه‌های موجود در پرانتز انجام گیرد.

نتیجه گیری

با بهره برداری از قدرت mod_rewrite و استفاده از جادوی Regular Expression‌ها، توسعه دهنده‌های اصلی Moz توانستند به توسعه مجموعه ای از قواعد ساده برای ریدایرکت کردن صفحات وب بپردازند. با استفاده از ریدایرکت‌های ۳۰۱، آنها این عمل را به شکل پیاده ساختند که مطابق نیازمندی‌های موتورهای جستجو باشد.

آیا این مطلب مفید بود؟

0
0
Share on facebook
Share on google
Share on twitter
Share on linkedin

سیستم پرسش و پاسخ

ثبت سوال جدید

برای مشاوره و یا ثبت پرسش در زمینه ی طراحی سایت، سئو، تولید محتوا، طراحی نرم افزار و اپلیکیشن می توانید از این قسمت استفاده کنید. پاسخ شما تا 24 ساعت از طریق پیامک و ایمیل اطلاع رسانی خواهد شد.

پیگیری سوال قبل

 برای پیگیری پاسخ سوال خود، کد رهگیری آن را در این قسمت وارد کنید.
تصاویر پیوست امکان انتخاب تا ۵ تصویر وجود دارد. جهت انتخاب چندگانه کلید Ctrl را نگه دارید.
© همیارسیستم
زنبیل خرید
پرسش از دکتر