ساخت ریدایرکت 301 با PHP
مقالات برنامه نویسیچگونه به سادهترین شکل ممکن یک تغییر مسیر با کد پاسخ دلخواه را توسط زبان PHP ایجاد کنیم ؟
اگر با ریدایرکتها مثل ریدایرکت 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 سال است که در زمینه طراحی و برنامه نویسی وب سایت فعالیت می کنم . توسعه دهنده فرانت اند ، طراح و برنامه نویس انواع وب سایت های وردپرسی ، فعال در زمینه تولید محتوا و سئو وب سایت
نقشه راه فرانت
اگر قصد دارید تا یک طراح ماهر باشید ، ما درست ترین مسیر را برای شما فراهم کردیم و فقط کافیست همراه ما باشید
برای یادگیری سریع گیت ، کافیست تا اصلی ترین و عمومی ترین دستورات گیت را یاد گرفته و شروع کار با آن را آغاز کنید . در این مقاله بیش از 40 دستور را خدمتتان ارائه کردیم .
زبان برنامه نویسی دارت چیست ؟ چه برنامه هایی را میتوان با زبان دارت نوشت ؟ فلاتر دقیقا به کدام قسمت زبان دارت مربوط است ؟ در این مقاله به شکل دقیق به تمام این سئوالات پاسخ خواهیم داد .