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

ریدایرکت با کد HTML
یکی از ساده ترین و قدیمی ترین راه ریدایرکت یک کاربر به صفحه ای دیگر، استفاده از متای refresh در سورس سایت است. از این کد می توان تقریبا در تمامی اسکریپت ها و سایت ها استفاده کرد ولی تنها نکته مهم این است که گاهی اوقات مرورگرها مانع ریدایرکت کاربر با این کد می شوند. اما برای تکمیل آرشیو، بد نیست با این کد آشنا شوید. این کد به این صورت است:
<meta http-equiv="refresh" content="0;URL='https://betalk.ir/'" />
- بجای عدد 0 در کد بالا می توانید هر عدد دیگری به “ثانیه” وارد کنید. کد بالا به محض ورود کاربر، عملیات ریدایرکت را انجام می دهد اما اگر قصد دارید کاربر بعد از چندین ثانیه از ورود به یک صفحه خاص، به صفحه دیگر منتقل شود، می توانید زمان را به ثانیه در کد بالا وارد کنید. برای مثال با وارد کردن عدد 20، کاربر بعد از 20 ثانیه از اینکه وارد صفحه شما شود، به آدرس داخل کد ریدایرکت خواهد شد.
- بجای آدرس
https://betalk.ir/
آدرس کامل و دقیق صفحه یا سایتی که می خواهید کاربر به آن منتقل شود را وارد کنید.
یک نمونه کامل استفاده از این کد به این صورت است که باید قبل از تگ </head>
استفاده شود. نمونه:
<html>
<head>
<title>صفحه نمونه</title>
<meta http-equiv="refresh" content="10;URL='https://betalk.ir/'" />
</head>
<body>
<p>شما تا 10 ثانیه دیگر به سایت <a href="https://betalk.ir/">بی تاک</a> منتقل خواهید شد</p>
</body>
</html>
ریدایرکت با کد PHP
اگر یک اسکریپت مخصوص دارید یا فایل های سایتتان به زبان PHP نوشته شده اند و قصد دارید توسط کدهای PHP ریدایرکت کنید. این کار توسط تابع header به راحتی قابل انجام است. کد زیر یک نمونه بسیار ساده است که در هر فایلی که قرار گیرد، و آن فایل در هر آدرسی که اجرا شود عملیات ریدایرکت را انجام می دهد. کافیست این کد زیر را در ابتدای فایل موردنظرتان قرار دهید:
<?php header("Location: https://betalk.ir/new-page", TRUE, 301); exit(); ?>
- بجای آدرس
https://betalk.ir/new-page
آدرس سایت یا صفحه ای که قصد دارید ریدایرکت به آن انجام شود را وارد کنید.
ریدایرکت با کد جاوا اسکریپت یا JavaScript
راه دیگر برای ایجاد یک ریدایرکت، استفاده از کدهای جاوااسکریپت است. در این حالت شما می توانید در یک فایل مخصوص از کد ریدایرکت استفاده کرده و کاربر را هنگام اجرای یک صفحه به صفحه دیگری ریدایرکت کنید. به دو صورت می توان یک عملیات ریدایرکت توسط جاوا اسکریپت انجام داد.
نمونه اول:
window.onload = function() {
// شبیه سازی ریدایرکت مانند کلیک کردن کاربر
window.location.href = "https://betalk.ir";
}
نمونه دوم:
window.onload = function() {
// حالت استاندارد ریدایرکت کاربر توسط جاوا اسکریپت
window.location.replace("https://betalk.ir");
}
در هر دو حالت کاربر ریدایرکت خواهد شد اما در نمونه دوم، کد جاوا اسکریپت مخصوص ریدایرکت نوشته شده است و ممکن است برخی از افزونه های ADBlock مانع اجرای این کد شوند.
کد ریدایرکت با Htaccess
حالت دیگر برای ریدایرکت کاربر، کد htaccess است. همانطور که می دانید این فایل توانایی مدیریت کامل و گسترده ای روی سایت دارد و می توانیم توسط دستورات داخل این فایل، ریدایرکت های مختلفی در سایت انجام دهیم. در حالت های قبلی، ما باید کد ریدایرکت را در همان صفحه موردنظرمان قرار دهیم تا کاربر با ورود به آن ریدایرکت شود که بیشتر مخصوص وبلاگ هایی بود که به فایل .htaccess
دسترسی ندارند، اما در سایت های مستقل که این فایل در دسترس است، بهترین روش برای انجام ریدایرکت ها، استفاده از فایل .htaccess
می باشد.
در ادامه نمونه کدهایی قرار داده شده که می توانید توسط آنها، حالت های مختلفی از ریدایرکت را داشته باشید. کافیست هر کد مورد نظر را در ابتدای فایل .htaccess
قرار دهید و آدرس ها را اصلاح کنید.
ریدایرکت کل سایت به دامین جدید
در این حالت کل آدرس سایت را به یک سایت جدید ریدایرکت می کنیم. بجای آدرس https://betalk.ir/
آدرس دقیق سایت یا صفحه دلخواهتان را وارد کنید.
Redirect 301 / https://betalk.ir/
ریدایرکت یک آدرس خاص به آدرس دیگر
در این حالت ما می توانیم یک صفحه یا آدرس خاصی از سایت را به یک سایت یا لینک جدیدی ریدایرکت کنیم. در کد زیر بجای old-page
آدرس صفحه موردنظر از سایتتان بدون در نظر گرفتن دامین اصلی وارد کرده و بجای https://betalk.ir/new-page
آدرسی که قصد دارید کاربر به آن ریدایرکت شود را وارد کنید.
Redirect 301 /old-page https://betalk.ir/new-page
ریدایرکت یک گروه صفحه به گروه دیگر
گاهی اوقات اتفاق می افتد که شما دسته بندی یا پسوند مطالبتان را تغییر داده اید. برای مثال در لینک مطالب شما https://betalk.ir/tag/example-post
تا پیش از این عبارت tag استفاده می شد اما تصمیم گرفته اید آن را به کلمه دیگری بعنوان مثال https://betalk.ir/category/example-post
تغییر دهید و قصد دارید کاربرانی که سعی دارند به لینک قدیمی دسترسی پیدا کنند، بطور خودکار به لینک جدید منتقل شوند. در چنین حالتی باید از این کد استفاده شود:
RewriteRule ^tag/(.*)$ /category/$1 [R=301,NC,L]
ریدایرکت صفحات ناموجود به صفحه اصلی
در اکثر اسکریپت ها، زمانی که شما سعی کنید یک صفحه از سایتتان که وجود ندارد را باز کنید، با صفحات خطای 404 مواجه می شوید اما اگر قصد دارید خودتان یک اسکریپت دلخواه بسازید و می خواهید کاربرانتان در صورتی که قصد داشتید وارد صفحه ای شوند که خطای 404 دارد و به صفحه اصلی ریدایرکت شوند، از این کد استفاده کنید:
Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]