بخش Vip سئو نود

بهترین فرصت برای یادگیری در قسمت Vip سئو نود هم اکنون برای دانشجوبان عزیز فراهم شده است

جزئیات بیشتر
آموزش یکبار برای همیشه
جشنواره قربان تا غدیر 20% تخفیف برای همه محصولات با کد Gorbann

ساخت ریدایرکت 301 با PHP

مقالات برنامه نویسی

چگونه به ساده‌ترین شکل ممکن یک تغییر مسیر با کد پاسخ دلخواه را توسط زبان PHP ایجاد کنیم ؟

0 114
ساخت ریدایرکت 301 با PHP
مطالعه : 6 دقیقه

اگر با ریدایرکت‌ها مثل ریدایرکت 301 و … آشنایی دارید در این مقاله مشکلی نخواهیم داشت اما اگر در مورد ریدایرکت‌ها و روش کار آنها اطلاعی ندارید بهتر است در حدود چند خط درباره Redirection توضیح دهیم . ریدایرکت درکل به معنی تغییر مسیر است . زمانی که کاربر وارد آدرس خاصی از سایت شما می‌شود ، بدون اینکه محتوای موجود در آدرس مدنظر خود را مشاهده کند ، به آدرس دیگری منتقل می‌شود . این عمل را ریدایرکت یا همان تغییر مسیر می‌نامند . برای مثال شما به دنبال آدرس زیر هستید :

https://test.com/google-search-console

اما در عرض چند ثانیه متوجه می‌شوید که آدرس سایت در مروگر به شکل زیر تغییر کرده است :

https://test.com/gsc

این یعنی شما به یک آدرس جدید ریدایرکت شدید . اما این سیستم چگونه کار می‌کند؟ اکر قصد داشتید تا در صفحه‌ای از سایت خودتان ، بدون استفاده از مواردی همچون htaccess و … عمل ریدایرکت را انجام دهید ، می‌توانید توسط زبان برنامه نویسی PHP این کار را بسادگی اجرا کنید .

تابع header در PHP

در زبان برنامه نویسی PHP توابع کاربردی بسیار فراوان هستند و برخی از آنها در اکثریت پروژه‌های برنامه نویسی بخوبی جایگاه خود را نشان می‌دهند . تابع header در زبان PHP نیز یکی از این توابع است . نحوه استفاده از تابع header بصورت زیر است :

header( $header, $replace, $http_response_code )

در این تابع چندین پارامتر ورودی داریم . اما شاید درک این تابع اکنون برای شما دشوار باشد پس بگذارید آن را کمی ساده‌تر کنیم . در این تابع پارامتر header$ برای ما بسیار مهم است چراکه توسط همین پارامتر تعیین خواهیم کرد که از این صفحه به کدام صفحه یا آدرس منتقل شویم . پس می‌توان گفت اصلی‌ترین پارامتر در این تابع همین header$ است .

قسمت replace$ یک پارامتر اختیاری در این تابع است و وجود آن الزامی نیست . این پارامتر نشان می‌دهد که آیا هدر باید یک هدر مشابه قبلی را جایگزین کند یا نه ! ( شاید درک این پارامتر برای شما دشوار باشد اما نگران نباشید ) .

در نهایت پارامتر سوم یعنی http_response_code$ ، همانطورکه از اسم آن مشخص است یک کد پاسخ است و می‌توانیم توسط این پارامتر کد پاسخ خاصی مثل 301 را ارسال کنیم .

پیشنهادی : انواع ریدایرکت در وب را بشناسید 

اگر با انواع تغییر مسیرها آشنایی ندارید توصیه می‌کنیم حتما مقاله بالا را مطالعه کنید .

چگونه Redirect ایجاد کنیم ؟

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

header("Location: https://www.test.com/gsc");
exit();

البته که تگ‌های باز و بسته PHP را فراموش نکنید . در این دستور همانطور که مشاهده می‌کنید داخل تابع header و بعنوان پارامتر اول از یک آدرس مقصد استفاده شده است و البته که قبل از این آدرس یک عبارت کلیدی بنام Location قرار گرفته است . به همین سادگی شما می‌توانید یک تغییر مسیر ایجاد کنید .

پیشنهادی : دوره آموزش php – نابغه php باش – با قسمت های رایگان 

دقت داشته باشید که این دستور بصورت پیشفرض کد پاسخ 302 را ارسال می‌کند و کد پاسخ 302 به این معنی است که تغییر مسیر موقت است . اگر قصد دارید تا تغییر مسیر برای همیشه انجام شود یعنی حالت 301 داشته باشد ، باید دستور خود را بصورت زیر اصلاح کنید :

header("Location: http://www.test.com/gsc", TRUE, 301);
exit();

بدینصورت شما یک تغییر مسیر 301 خواهید داشت . البته که در ادامه‌ی کدها به تابع exit نیز توجه کنید .

استفاده از تابع exit و یا تابع die سبب خواهد شد تا اجرای اسکریپت شما دقیقا پس از دستور header متوقف شده و از اجرای ادامه کدها خودداری شود و به این ترتیب مطمئن خواهیم شد که مشکلی در این صفحه بوجود نخواهد آمد .

خطای هدرها قبلا ارسال شده‌اند

یک خطای برنامه نویسی معروف در زبان برنامه نویسی PHP  تحت عنوان ” هدرها قبلا ارسال شده‌اند ” وجود دارد که بعنوان یک برنامه نویس باید درمورد آن اطلاع داشته باشید .

برای اینکه این خطا رخ ندهد باید مطمئن باشید که قبل از هدر ، خروجی را ارسال کنید ( این خروجی حتی احتمال دارد یک صفحه سفید باشد ) . لذا اطمینان داشته باشید که قبل از دستور header ، خروجی ارسال نکنید تا با خطای ” هدرها قبلا ارسال شده‌اند ” مواجه نشوید . امیدواریم این مقاله برای شما دوستان عزیز مفید بوده باشد . پاینده باشید .

امید قدیمی

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

اشتراک گذاری محتوا

نقشه راه فرانت

اگر قصد دارید تا یک طراح ماهر باشید ، ما درست ترین مسیر را برای شما فراهم کردیم و فقط کافیست همراه ما باشید

نقشه راه وردپرس

اگر شما نیز علاقمند هستید تا وردپرس را به عنوان یک برنامه نویس توسعه دهید ، بهترین دوره های آموزشی را برایتان تدریس کردیم

شاید این مطالب نیز برای شما جالب باشد
از این شاخه به آن شاخه پریدن در یادگیری برنامه نویسی !!
مطالعه : 10 دقیقه 1
امید قدیمی امید قدیمی
۱۴۰۴-۰۱-۰۳
زبان برنامه نویسی دارت (Dart) چیست
مطالعه : 11 دقیقه 0
امید قدیمی امید قدیمی
۱۴۰۱-۱۰-۲۲
آموزش تابع implode در php
مطالعه : 4 دقیقه 0
امید قدیمی امید قدیمی
۱۴۰۳-۱۰-۲۶
نظرات و پرسش
توجه کامنت های انگلیسی تایید نخواهند شد در صورت داشتن مشکل ، قبل از ارسال دیدگاه نظرات سایر دوستان را نیز مطالعه فرمائید توجه داشته باشید که دیدگاه یا پرسش صحیح شما کمک شایانی به سایر علاقمندان به این مطلب یا محصول خواهد داشت
اشتراک دیدگاه تکمیل تمامی فیلدها الزامی است
captcha

آموزش های رایگان بیشتر در آپارات و یوتیوب سئو نود
کانال آپارات سئو نود چنل یوتیوب سئو نود