پنج روش برای رفع خطای HTTP 302
مقاله

پنج روش برای رفع خطای HTTP 302

کدهای HTTP 302 یک روش کاربردی برای هدایت موقت کاربران وب سایت، به یک URL دیگر هستند. با این حال، اگر در وب سایت شما ریدایرکت 302 به اشتباه انجام می شود، نشانه دهنده آن است که تنظیمات را به درستی اعمال نکرده اید.

برای این منظور می توانید شخصا اقدام به رفع مشکل نمایید اما قبل از آن باید برخی از عیب یابی ها را انجام دهید.

اولین قدم این است که دقیقاً بدانید کد HTTP 302 چیست، چگونه کار می کند و چرا ایجاد می شود؟ پس از دانستن این موضوع، می توانید بفهمید که چه موردی اشتباه بوده و چگونه آن را اصلاح کنید؟

در این مقاله هر آنچه که باید در مورد خطاهای HTTP 302 دانست، گردآوری شده و در ادامه پنج نکته کلیدی به جهت عیب یابی خطا نیز ارائه شده است.

کدهای وضعیت HTTP 302 چیست؟ 

کدهای 302 نوع خاصی از کد وضعیت HTTP یا HTTP status code می باشند. این کدها مانند یادداشت‌هایی هستند که سرور به مرورگر شما تحویل می‌دهد.

هر زمان که روی یک لینک کلیک می کنید یا به یک URL مراجعه می نمایید، مرورگر شما همان را از وب سرور درخواست می کند. در مقابل، سرور، منبع درخواست (به عنوان مثال صفحه ای که می خواهید به آن دسترسی پیدا کنید) را به همراه یک هدر HTTP برمی گرداند. کدهای وضعیت HTTP داخل آن هدر هستند.

به طور معمول، شما نمی توانید این کدهای وضعیت را در هیچ کجای صفحه وب مشاهده کنید. معمولاً آنها را صرفا زمانی مشاهده خواهید کرد که خطایی رخ داده باشد یا افزونه ای در مرورگر خود نصب کرده باشید تا آنها را به شما نمایش دهد:

رفع خطای HTTP 302

تصویر(1)

کدهای 3xx، کلاسی از کدهای وضعیت به نام کدهای تغییر مسیر یا ریدایرکت هستند. هر زمان که سرور منبع جدیدی را به جای منبع درخواستی ارسال کند، این کدها برگردانده می شوند. به عبارت دیگر، زمانی از این کد ها استفاده می شود که صفحه مورد نظر، شما را به صفحه ای دیگر هدایت کند.

تفاوت اساسی بین کد 301 و کد 302 این است که اولی برای تغییر مسیرهای دائمی و دومی برای تغییر مسیرهای موقت استفاده می شود. ریدایرکت‌های 301 همچنین از link juice عبور می‌کنند، در حالی که 302 اینطور نیست و تأثیر قابل توجهی بر بهینه سازی موتور جستجو (SEO) دارد.

Link Juice در واقع به معنی منتقل نمودن ارزش یک صفحه به صفحه دیگر به کمک لینک سازی است. به عنوان مثال اگر پستی دارید و لینک هایی به صفحات دیگر در آن قرار داده اید، بخشی از پتانسیل رتبه بندی این صفحه، به وسیله همین ریدایرکت ها به صفحه مقصد منتقل خواهد شد.

نحوه کار ریدایرکت های 302

وقتی در وب سایت خود یک ریدایرکت 302 برای صفحه ای که به طور موقت در دسترس نیست تنظیم می کنید، هنگام بازدید کاربر از آن، وب سرور شما با یک هدر موقعیت مکانی (Location header) خاص، به مرورگر کاربر پاسخ می دهد. این هدر، URL جدیدی را نشان داده که مرورگر باید کاربر را به آن هدایت کند.

برای مثال، تصور کنید که یک کاربر blog.example.com را در نوار URL مرورگر خود تایپ می کند اما وب سایت طوری تنظیم شده که آن را به blogging.example.com هدایت نماید. پاسخ سرور شامل کد وضعیت 302 و هدر blogging.example.com خواهد بود. این تنظیمات به مرورگر کاربر می‌گوید که درخواست را به URL جدید هدایت کند.

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

چرا خطاهای HTTP 302 رخ می دهد؟

اگر بخشی در وب سایت شما به درستی کانفیگ نشده باشد، ممکن است به اشتباه باعث بروز خطای 302 شود. در صورتی که این اتفاق رخ دهد، ممکن است با مشکلاتی نظیر موارد زیر مواجه شوید:

  • صفحه ای در وب سایت شما وجود دارد که بازدیدکنندگان را به اشتباه و در حالی که نباید ریدایرکتی صورت بگیرید به URL دیگری هدایت می کند.
  • صفحه ای در وب سایت شما وجود دارد که بازدیدکنندگان را به منبع اشتباه هدایت می کند.
  • خطای ERR_TOO_MANY_REDIRECTS (همچنین به عنوان "redirect loop" شناخته می شود)

آخرین مورد نیز هنگامی است که صفحه مد نظر شما خطای واقعی را نمایش می دهد. اگر از مرورگر کروم استفاده می کنید، صفحه خطای redirect loop همانند تصویر زیر خواهد بود:

رفع خطای HTTP 302

تصویر(2)

در موزیلا فایرفاکس نیز، به شکل زیر نمایش داده می شود:

رفع خطای HTTP 302

تصویر(3)

مشکلات فوق به دلیل برخی تنظیمات نادرست ایجاد می شوند. ممکن است تداخل افزونه، تنظیمات نادرست URL، یا یک فایل htaccess. که به درستی کانفیگ نشده، علت بروز این خطاها باشند.

نحوه رفع خطای HTTP 302 (پنج روش)

در ادامه، پنج روش عیب‌یابی که می‌تواند به شما کمک کند تا علت بروز مشکل را شناسایی و آن را برطرف کنید، آورده شده است.

قبل از شروع، مطمئن شوید که ابتدا یک نسخه پشتیبان کامل از وب سایت خود تهیه نموده اید. به این ترتیب، اگر مشکلی ایجاد شد، همواره می توانید به نسخه قبلی برگردید. با توجه به نوع کنترل پنل خود، از آموزش های زیر برای تهیه بک آپ استفاده کنید:

نحوه گرفتن نسخه پشتیبان در سی پنل

نحوه گرفتن نسخه پشتیبان در دایرکت ادمین

1. تعیین کنید که آیا ریدایرکت ها معتبر هستند؟

پاسخ های 302 معمولاً با خطا همراه نیستند. هدایت موقت کاربران به یک صفحه دیگر می تواند معتبر باشد و معمولاً نیازی به اصلاح ندارند.

در صورتی که وب سایت شما با کد 302 پاسخ می دهد در صورتی که نباید اینگونه عمل کند یا باعث ایجاد redirect loop می شود، نشان دهنده یک خطا می باشد. بنابراین، اولین قدم این است که بررسی نمایید کدام URL ها کدهای HTTP 302 را تولید می کنند و مشخص نمایید آیا این ریدایرکت ها صحیح می باشند یا خیر.

برای انجام این کار، می توانید به صفحاتی در وب سایت خود که مشکوک به ایجاد خطای 302 هستند مراجعه و شخصا مشاهده نمایید که آیا آنها مطابق انتظار رفتار می کنند یا خیر. اگر صفحه ای که به طور موقت در دسترس نیست به منبع صحیح هدایت شود، تنظیمات صحیح است.

با این حال، اگر صفحه‌ای شما را به مسیر اشتباه هدایت می‌کند یا مرورگر شما یک redirect loop را با نمایش خطای ERR_TOO_MANY_REDIRECTS گزارش می‌دهد، نشانه دهنده آن است که یک (یا چند) ریدایرکت شما به درستی تنظیم نشده‌اند.

2. افزونه های خود را بررسی کنید

یکی از رایج ترین دلایل بروز خطاهای 302 و redirect loop، افزونه ها هستند.

برخی از افزونه‌های مدیریت ریدایرکت وردپرس و ابزارهای سئو مانند Yoast SEO، ریدایرکت های وب‌سایت شما را مدیریت می‌کنند و به شما امکان می‌دهند قوانین ریدایرکت را تنظیم کنید (این مورد در نسخه پریمیوم این افزونه فعال است): 

رفع خطای HTTP 302

تصویر(4)

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

برای مثال، اگر از افزونه محبوب 301 Redirects WordPress استفاده می‌ کنید، می‌توانید تنظیمات آن را با مراجعه به منوی "تنظیمات" سپس "301 Redirects" بررسی کنید. در بخش Redirect Rules، ریدایرکت هایی که برای صفحات گوناگون تنظیم شده است را مشاهده خواهید کرد.

رفع خطای HTTP 302

تصویر(5)

تمام ریدایرکت های 302 فهرست شده را بررسی کنید و مطمئن شوید که همه آنها صحیح هستند.

همچنین باید اطمینان حاصل نمایید که تنظیمات را به گونه ای اعمال نکرده باشید که باعث ایجاد redirect loop شوند. به عنوان مثال، اگر Page-A برای ریدایرکت به Page-B تنظیم شده اما Page-B نیز به سمت Page-A ریدایرکت می شود، باعث ایجاد این خطا خواهد شد.

اگر چندین افزونه مدیریت ریدایرکت دارید و مطمئن نیستید که کدام یک باعث این مشکل شده است، می توانید آنها را یک به یک از طریق صفحه افزونه های وردپرس غیرفعال نمایید (حتما ابتدا یک نسخه پشتیبان تهیه کنید):

رفع خطای HTTP 302

تصویر(6)

همچنین می توانید افزونه ها را به صورت دستی غیر فعال نمایید.

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

3. مطمئن شوید که تنظیمات URL وردپرس شما به درستی انجام شده است

یکی دیگر از دلایل رایج خطای HTTP 302، کانفیگ نادرست در تنظیمات URL وردپرس است.

برای بررسی این موضوع، در داشبورد وردپرس به مسیر "تنظیمات" سپس "عمومی" مراجعه نمایید. در اینجا، باید دو فیلد "نشانی وردپرس (URL)" و "نشانی سایت (URL)" را مشاهده کنید:

رفع خطای HTTP 302

تصویر(7)

در بیشتر موارد، URLهای هر دو فیلد مطابقت دارند. مطمئن شوید که هر دو لینک یکسان هستند. به طور مثال هر دو URL با www یا بدون آن قبل از نام دامنه باشند.

اگر این دو فیلد مطابقت نداشتند، آنها را اصلاح نمایید، سپس URL صفحه‌ای که خطای HTTP 302 را صادر می‌کند جهت مشاهده وضعیت آن، بررسی کنید.

4. تنظیمات سرور خود را بررسی کنید

گاهی اوقات یک سرور با تنظیمات نادرست، می تواند باعث خطاهای ریدایرکت 302 شود. بنابراین، مرحله بعدی این است که تنظیمات سرور خود را بررسی کنید. می توانید این کار را با بررسی فایل htaccess. انجام دهید (در هاست های میهن وب هاست نیز این فایل وجود دارد). 

ابتدا از طریق یک کنترل پنل مانند cPanel یا یک نرم افزار FTP همانند فایل زیلا، به سرور وب سایت خود متصل شوید. سپس به مسیر اصلی سایت خود مراجعه نمایید (همان مسیری که پوشه های wp-admin و wp-content و فایل htaccess و … در آن قرار دارند).

رفع خطای HTTP 302

تصویر(8)

اگر فایل htaccess. را در اینجا پیدا نمی‌کنید، ممکن است لازم باشد در تنظیمات FileZilla نمایش فایل‌های مخفی را فعال نمایید. تصویر(9)

تصویر(9)

سپس فایل را در یک برنامه ویرایشگر متن، باز کنید.

کدهایی نظیر تصویر زیر را مشاهده خواهید نمود:

رفع خطای HTTP 302

​​​​​​​تصویر(10)

اکنون، به دنبال دستورالعمل های RewriteXXX (کدهای مشخص شده در بالا) باشید. به بیان ساده، دستورالعمل های RewriteCond و RewriteRule برای ریدایرکت از یک URL به URL دیگر استفاده می شوند.

دستورالعمل RewriteCond URL مشخص می کند که می خواهید بازدید کننده را از آن صفحه به صفحه ای دیگر هدایت کنید، در حالی که دستورالعمل RewriteRule نشانی اینترنتی مقصد را برای ریدایرکت مشخص می کند. به بیان ساده تر RewriteCond نشان دهنده مبدا و RewriteRule نشان دهنده مقصد می باشد. در زیر یک مثال آمده است:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^example.com$

RewriteRule ^(.*)$ http://www.tmp-example.com/$1 [R=302] 

در پایان، "[R=302]"، به مرورگر می گوید که این یک ریدایرکت موقت از نوع 302 است. 

در صورتی که در فایل htaccess. دستورات مشکوکی را مشاهده نمودید، پیش از انجام هرگونه تغییری، فایل را دانلود و در سیستم خود ذخیره نمایید. سپس دستورات مشکوک را بررسی نموده و با کامنت نمودن این کدها (قرار دادن # پیش از هر خط دستور) و ذخیره نمودن فایل، مجددا بررسی نمایید که مشکل برطرف شده است یا خیر.

رفع خطای HTTP 302​​​​​​​

​​​​​​​تصویر(11)

5. با میزبان سایت خود صحبت کنید

اگر تمامی روش‌های بالا را امتحان کرده‌اید و همچنان مشکل حل نشده، قدم بعدی این است که با میزبانی وب خود صحبت کنید. عیب یابی خطای 302 به دانش فنی زیادی نیاز دارد. بنابراین، اگر یک توسعه دهنده حرفه ای نیستید، بهتر است از یک متخصص کمک بگیرید.

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

ارسال درخواست پشتیبانی

خلاصه

کدهای وضعیت HTTP 302 یک روش کاملاً عادی برای ریدایرکت بازدیدکنندگان وب سایت شما هستند. با این حال، زمانی باید از آنها استفاده شود که صفحه موردنظر به طور موقت در دسترس نباشد.

فرض کنید وب سایت شما به اشتباه کد 302 را اعمال می کند یا باعث ایجاد redirect loop می شود. در این صورت، رفع مشکل در اسرع وقت، بسیار مهم می باشد زیرا ممکن است بر سئو سایت شما تأثیر منفی بگذارد.

برای رفع خطاهای HTTP 302 در وب سایت خود می توانید این پنج مرحله را دنبال کنید:

  1. با بررسی URL هایی که ریدایرکت های 302 را صادر می کنند، مشخص نمایید که آیا ریدایرکت ها صحیح هستند یا خیر.
  2. افزونه های خود را بررسی کنید تا مطمئن شوید که تنظیمات ریدایرکت معتبر هستند.
  3. مطمئن شوید که تنظیمات URL وردپرس شما به درستی انجام شده باشد.
  4. پیکربندی سرور خود را با جستجوی دستورالعمل های نادرست RewriteXXX در فایل htaccess. بررسی کنید.
  5. اگر مشکل ادامه داشت برای پشتیبانی فنی بیشتر با میزبانی وب خود در ارتباط باشید.

اشتراک گذاری:

نظرات

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *