آیا تاکنون در هنگام بازدید از وبسایت خود در فایرفاکس، با پیام "The page isn’t redirecting properly"مواجه شده اید؟
این پیغام خطا فقط در مرورگر موزیلا فایرفاکس نمایش داده می شود و نشان دهنده مشکلی در رابطه با ریدایرکت در سایت شما می باشد. این مشکل ممکن است به دلیل وجود چند ایراد و حتی فقط یک ایراد رخ دهد. در ادامه به شرح این مشکل پرداخته می شود.
در این مقاله، خواهید آموخت که چگونه میتوانید پیغام خطای "The page isn’t redirecting properly"را برای سایتهای وردپرسی، سرورهای Nginx و اسکریپت های PHP برطرف کنید.
تصویر(1)
"The page isn’t redirecting properly" به چه معناست؟
هنگامی که فایرفاکس در یک Redirection loop (حلقه ریدایرکت) بی نهایت گیر می کند، خطای "The page isn’t redirecting properly" نمایش داده می شود.
به عنوان مثال، فرض کنید "صفحه 1" شما را به "صفحه 2" ریدایرکت کرده و دوباره "صفحه 2" شما را به "صفحه 1" ریدایرکت کند، سپس مجددا به "صفحه 2" ریدایرکت می شوید و … . بدین ترتیب در یک حلقه بی نهایت این روند ادامه خواهد داشت.
فایرفاکس به جای اینکه برای همیشه در این حلقه ریدایرکت گیر کند، تسلیم می شود و اخطار "The page isn’t redirecting properly" را نمایش می دهد.
این مشکل تقریباً در هر سایتی رخ می دهد. ممکن است در برخی شرایط در Google Drive یا YouTube هم با آن رو برو شوید. اگر مدیر یک وب سایت وردپرسی هستید، احتمالا زمانی که برای دسترسی به وب سایت وردپرسی خود تلاش می کنید نیز ممکن است این خطا را مشاهده کنید.
اگر از مرورگر کروم استفاده می کنید، ممکن است با این مشکل به شکل دیگری مانند "ERR_TOO_MANY_REDIRECTS" برخورد کنید.
چرا پیام "The page isn’t redirecting properly" نمایش داده می شود؟
علت اصلی این پیغام خطا همیشه به دلیل تنظیمات نادرست ریدایرکت در سایت است.
تصویر(2)
دلایل مختلفی می تواند برای این تنظیمات نادرست وجود داشته باشد که پیگیری مشکل را کمی دشوار می کند.
در ادامه این مقاله، نکات و روش هایی به اشتراک گذاشته شده اند که میتوانید از آنها برای تشخیص و رفع علت خطا استفاده کنید.
ابتدا این روش ها را امتحان کنید
در زیر مراحل عیب یابی برای رفع این پیام خطا در سایت های وردپرسی، وب سرور Nginx و اسکریپت های PHP آورده شده است.
پیش از همه، اگر در وبسایتی که مشخصات دسترسی برای کنترل آن را ندارید، مانند Google Drive یا YouTube، با این خطا روبرو شدید، توصیه می شود ابتدا دو مرحله عیبیابی زیر را انجام دهید.
انجام این دو مرحله به طور خودکار بسیاری از مشکلات ریدایرکت را برطرف می کنند. اگر این روشها مشکل را برطرف نکردند، میتوانید راهحلهای دیگر را امتحان کنید. اما به یاد داشته باشید اگر این نکات باعث شوند که مشکل سایت حل شود، در زمان صرفه جویی زیادی کرده اید.
1. کش مرورگر خود را پاک کنید
اولین اقدامی که باید هنگام مواجه شدن با هرگونه خطا انجام دهید، پاک کردن کش مرورگر فایرفاکس است.
فایرفاکس (و همه مرورگرهای دیگر) فایل های ثابت یک وب سایت را در دستگاه شما و در حافظه کش ذخیره می کند تا عملکرد سیستم را بهبود بخشد. به این ترتیب، فایرفاکس به جای اینکه آنها را در بازدیدهای بعدی مجددا دانلود کند، می تواند این منابع را مستقیماً از دستگاه شما دریافت نماید.
اگر این فایلها به دلایلی قدیمی باشند، ممکن است خطاهای مختلفی از جمله خطای "The page isn’t redirecting properly" را ایجاد کنند. با پاک کردن حافظه کش، فایرفاکس را مجبور میکنید تا نسخههای جدید فایلها را دوباره دانلود نماید که اغلب این کار میتواند مشکل را برطرف کند.
ابتدا متن زیر را در"navigation bar" مرورگر خود وارد کنید تا تنظیمات حریم خصوصی باز شود:
"about:preferences#privacy"
یا میتوانید با دنبال کردن مسیر زیر، این بخش را به صورت دستی باز کنید:
- روی نماد سه خط در گوشه سمت راست بالا کلیک کنید.
- از منوی کشویی "Settings" را انتخاب کنید تا قسمت تنظیمات باز شود.
- به تب "Privacy & Security" بروید.
در قسمت "Privacy & Security"، بخش "Cookies and Site Data" را یافته و روی دکمه "Clear Data" کلیک کنید:
تصویر(3)
در پنجره ظاهر شده، گزینه "Cached Web Content" را انتخاب کرده و سپس روی "Clear" کلیک کنید:
تصویر(4)
اکنون صفحه ای را که با آن مشکل دارید مجدد بارگذاری کرده و بررسی نمایید که آیا مشکل برطرف شده است یا خیر. اگر هنوز ایراد در صفحه وجود دارد، به مرحله بعدی بروید.
2. کوکی های مربوط به سایتی که مشکل دارد را پاک کنید
یکی دیگر از دلایل رایج پیغام "The page isn’t redirecting properly" مشکل کوکیهای سایت است.
یکی از راه حل های موجود این است که کوکی های مرورگر را برای سایت مورد نظر پاک کنید.
به جهت اینکه از تمامی سایت هایی که بازدید کرده اید، خارج نشوید، فقط کوکی های دامنه خاصی که در آن مشکل دارید را پاک کنید. با حذف همه کوکیها هیچ مشکلی برای شما به وجود نخواهد آمد، فقط لازم است تا دوباره به سایت ورود نمایید.
برای انجام این کار، به تنظیمات "Cookies and Site Data" برگردید (درست مانند کاری که برای کش مرورگر انجام دادید)، فقط این بار روی دکمه "Manage Data" کلیک کنید:
تصویر(5)
در پنجره باز شده:
- نام دامنه سایتی که با آن مشکل دارید را جستجو نمایید.
- نام سایت را از لیست موجود انتخاب کنید.
- روی "Remove Selected" کلیک نمایید.
تصویر(6)
در اعلان تأییدی که ظاهر می شود، مجددا روی "Remove" کلیک کنید.
سپس، صفحه را دوباره بارگذاری کرده و بررسی کنید که آیا مشکل برطرف شده است یا خیر.
توجه داشته باشید که اگر سایت به نام کاربری و رمز عبور نیاز دارد، لازم است دوباره مشخصات خود را وارد کنید.
اگر هیچ یک از این روش ها مشکل را برطرف نکردند، به راه حل های مطرح شده در ادامه مقاله مراجعه کنید.
نحوه رفع خطای "The Page Isn’t Redirecting Properly" در وردپرس
اگر پیام "The page isn’t redirecting properly" را در سایت وردپرسی خود مشاهده می کنید و دو مرحله عیبیابی بالا مشکل را برطرف نکردند، ممکن است لازم باشد برخی از موارد مختص به وردپرس را بررسی نمایید.
همانطور که قبلا ذکر شد، این خطا ناشی از وجود برخی از مشکلات ریدایرکت در سایت شما است. در وردپرس، این خطا ممکن است از موارد زیر ناشی شود:
- تنظیمات وردپرس
- افزونه ها
- گواهینامه های SSL یا تنظیمات HTTPS
- پیکربندی SSL در کلودفلر
- ریدایرکت های سرور
جهت آغاز عیب یابی، می توانید از ابزارهای جستجوگر ریدایرکت مانند "httpstatus.io" برای تجزیه و تحلیل آنچه در حلقه ریدایرکت اتفاق می افتد استفاده نمایید. فقط کافی است URL سایتی را که با آن مشکل دارید وارد کنید تا این ابزار، زنجیره redirect loop را مرحله به مرحله تقسیم بندی کند.
به عنوان مثال، اگر سایت شما بین نسخههای HTTP و HTTPS گیر کرده است، نشانه این است که مشکلی در HTTPS یا SSL سایت شما وجود دارد، بنابراین باید کار خود را از عیب یابی در این موارد آغاز نمایید.
در صورتی که هیچ پیش زمینه ای از خطا ندارید، میتوانید مراحل عیبیابی زیر را به ترتیب طی کنید:
تنظیمات HTTPS خود را بررسی کنید
تنظیمات HTTPS سایت شما میتواند منبع رایج پیکربندی های نادرست ریدایرکت باشد. در زیر چند مشکل بالقوه ذکر شده است:
- ریدایرکت اجباری به HTTPS بدون نصب گواهی SSL: اگر بخواهید بدون نصب گواهی SSL استفاده از HTTPS را اجباری کنید، این خطا رخ میدهد.
- استفاده از افزونه SSL: توصیه می شود لینک های مهم خود را در کنار استفاده از یک افزونه SSL مانند Really Simple SSL، به HTTPS تغییر دهید. می توانید این کار را با جستجو و جایگزینی در دیتابیس سایت خود انجام دهید.
- ریدایرکت نادرست HTTP به HTTPS: هدایت اجباری تمام ترافیک HTTP به HTTPS خوب است اما باید مطمئن شوید که این ریدایرکت را به درستی تنظیم کرده اید.
تنظیمات SSL را در Cloudflare بررسی کنید
اگر در سایت وردپرسی خود از کلودفلر استفاده می کنید، ممکن است پیام خطا را به دلیل تنظیمات SSL در کلودفلر مشاهده نمایید. به طور معمول، این خطا زمانی رخ می دهد که قبلاً یک گواهی SSL را روی سرور سایت خود نصب کرده باشید اما همچنان از تنظیمات "Flexible" در کلودفلر استفاده کنید.
برای رفع این مشکل، باید وضعیت رمزگذاری را از "Flexible" به گزینه "Full" تغییر دهید.
داشبورد کلودفلر خود را باز کنید و به تب "SSL/TLS" بروید. سپس، وضعیت رمزگذاری "SSL/TLS" را به "Full" تغییر دهید:
تصویر(7)
تنظیمات وردپرس سایت خود را بررسی کنید
اگر به داشبورد وردپرس سایت خود دسترسی دارید، باید تنظیمات URL سایت را در مسیر "تنظیمات" سپس "عمومی" بررسی کنید.
اگر ریدایرکتی از WWW به غیر WWW (یا برعکس) انجام داده اید، باید مطمئن شوید که تنظیمات با URL نهایی سایت شما، مطابقت داشته باشد.
به عنوان مثال، اگر یک ریدایرکت برای ارسال تمام ترافیک از "https://example.com" به "https://www.example.com" تنظیم کرده اید، باید مطمئن شوید که آدرس سایت وردپرس شما نیز "https://www.example.com" باشد.
تصویر(8)
اگر به داشبورد وردپرس خود دسترسی ندارید، می توانید با ویرایش فایل "wp-config.php" سایت خود، این مقادیر را به صورت دستی اصلاح کنید. با اتصال به سرور خود از طریق FTP می توانید به این فایل دسترسی داشته باشید و آن را مدیریت کنید.
در صورتی که با اتصال از طریق FTP آشنایی ندارید از آموزش زیر استفاده کنید:
قطعه کد زیر را به فایل wp-config.php اضافه کنید، مطمئن شوید که URL های نمونه (example.com) را با URL واقعی سایت خود جایگزین کرده اید:
define('WP_HOME' , 'https://www.example.com');
define('WP_SITEURL' , 'https://www.example.com');
غیرفعال کردن موقت افزونه های وردپرس
در برخی شرایط، اگر یک افزونه وردپرس به دلایلی حلقه ریدایرکت ایجاد کند، میتواند باعث ایجاد خطای "The page isn’t redirecting properly" شود. این مشکل ممکن است از سمت خود افزونه یا عدم سازگاری با افزونه، قالب یا کد سفارشی دیگر باشد.
برای آزمایش سریع اینکه آیا مشکل افزونه است یا خیر، میتوانید تمام افزونههای خود را غیرفعال کنید. اگر سایت شما پس از غیرفعال کردن آنها شروع به کار کرد، مشخص می شود که یکی از افزونه های شما باعث ایجاد مشکل شده است.
با دسترسی به داشبورد وردپرس خود، می توانید افزونه ها را از قسمت "افزونه ها" غیرفعال کنید.
اگر به داشبورد وردپرس خود دسترسی ندارید، می توانید از آموزش زیر استفاده کنید:
آموزش غیر فعال سازی دستی افزونه وردپرس در هاست
ریدایرکت ها را در سرور خود بررسی کنید
اگر در تنظیمات سرور خود ریدایرکت های نادرستی را تنظیم کرده باشید، ممکن است باعث ایجاد مشکلاتی در ریدایرکت شود.
جهت آغاز بررسی این مورد، ابتدا باید مشخص شود که میزبان شما از کدام یک از وب سرورهای Apache ،Nginx و ... استفاده می کند.
فایل htaccess. در Apache
در آپاچی، می توانید با استفاده از فایل "htaccess." ریدایرکت ها را تنظیم کنید. با این حال، پیکربندی نادرست در این فایل، می تواند در فایرفاکس پیغام خطا ایجاد کند.
برای رفع این مشکل، میتوانید با انجام مراحل زیر در وردپرس، یک فایل "htaccess." جدید ایجاد نمایید:
- مطابق آموزشی که بالاتر آمده است از طریق FTP به هاست متصل شوید.
- فایل "htaccess." فعلی خود را که در پوشه اصلی سایت شما قرار دارد بیابید.
- نام فایل فعلی را به "htaccess_old." تغییر دهید تا غیرفعال شود (در این حالت فایل قدیمی را به عنوان یک نسخه پشتیبان نگهداری می کنید).
در این مرحله، مجددا به سایت خود برگردید. اگر مشکل برطرف شده است، داشبورد وردپرس خود را باز کرده و به "تنظیمات" سپس "پیوندهای یکتا" بروید. سپس روی "ذخیره تغییرات" (بدون تغییر تنظیمات) کلیک کنید. این تنظیمات وردپرس را مجبور میکند که یک فایل"htaccess." جدید ایجاد نماید.
اگر به داشبورد وردپرس خود دسترسی ندارید، می توانید به صورت دستی این فایل را، طبق مراحل زیر دوباره ایجاد کنید:
- با استفاده از FTP، یک فایل جدید به نام"htaccess." ایجاد کنید.
- قطعه کد زیر را به آن اضافه کنید:
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
فایل .conf در Nginx
اگر هاست شما از Nginx استفاده می کند، عیب یابی می تواند کمی پیچیده تر باشد زیرا محتویات و مکان فایل پیکربندی بسته به ارائه دهنده هاست متفاوت است. به همین دلیل، توصیه می شود در این مورد از پشتیبانی هاست خود کمک بخواهید.
اگر همچنان با "The page isn’t redirecting properly" در Nginx مواجه هستید و ویرایش فایل ".conf" این مشکل را حل نکرده، احتمالاً ایراد این است که یک سری از دستور های rewrite که اضافه نموده اید منجر به حلقه ریدایرکت شده است.
این مشکل میتواند با هر یک از دستورات rewrite اتفاق بیفتد، اما معمولا هنگام نوشتن دستورات ریدایرکت از HTTP به HTTPS یا WWW به غیر WWW (یا برعکس)، این اختلالات رخ می دهد.
اگر اخیراً دستورات rewrite جدیدی را در فایل "nginx.conf" خود اضافه کرده اید، احتمالاً مشکل همین دستورات هستند. سعی کنید آنها را حذف کرده و سپس مجدد بررسی کنید.
نحوه رفع خطای "The Page Isn’t Redirecting Properly" در PHP
اگر خطای "The Page Isn’t Redirecting Properly" را در PHP مشاهده کردید، دو مرحله رایج زیر را برای عیب یابی انجام دهید:
ریدایرکت های خود را بررسی کنید
اگر یک ریدایرکت را برای مثال از طریق تابع "()header" با استفاده از PHP تنظیم کردهاید، همین مورد به خودی خود می تواند منبع مشکلات ریدایرکت باشد.
اولین قدم شما باید رفع اشکال این تابع باشد و مطمئن شوید که آن را به گونه ای تنظیم نکرده اید که یک حلقه ریدایرکت ایجاد کند.
مشکلات مربوط به Login/Session را بررسی کنید
بسیاری از مشکلات PHP در رابطه با این خطا، ناشی از مشکلات مربوط به "login" و "session" است. به عنوان مثال، تابعی که وضعیت کاربر وارد شده را بررسی می کند، اگر ورود انجام نشده باشد آنها را به صفحه ورود ریدایرکت می کند. اگر تنظیمات session ها را به درستی انجام ندهید، میتوانید کاربران را در یک حلقه ریدایرکت بینهایت به دام بیندازید.
خلاصه
خطای "The Page Isn’t Redirecting Properly" یک خطای خاص موزیلا فایرفاکس است و زمانی ظاهر میشود که صفحه با حلقه ریدایرکت بینهایت مواجه میشود. این پیغام همان پیغام خطای "ERR_TOO_MANY_REDIRECTS" در کروم می باشد.
برای عیب یابی این خطا، باید دو مورد زیر را امتحان کنید:
- کش مرورگر فایرفاکس خود را پاک کنید.
- کوکیهای سایتی که خطا دارد را حذف نمایید.
اگر یک سایت وردپرسی دارید و پیغام خطا پس از انجام این دو مرحله همچنان وجود دارد، میتوانید مراحل اختصاصی مربوط به وردپرس را در این مقاله دنبال کنید و احتمال مواجهه با این خطا را به حداقل برسانید.