ریدایرکت چیست، انواع ریدایرکت های ۳۰۱، ۳۰۲ و ۳۰۷. تمامی کدهای ریدایرکت کردن صفحات به زبان های مختلف برنامه نویسی و کدهای ریدایرکت فایل .htaccess
ریدایرکت چیست؟
شاید برای شما هم پیش آمده باشد که وارد سایتی بشوید و مشاهده کنید که پس از ورود آدرس، سایت مقصد شما را به یک آدرس دیگر منتقل میکند. به این حرکت در وبسایت ها، اصطلاحاً ریدایرکت میگویند که انواع مختلف و کاربرد های متفاوتی دارند که در ادامه به آنها خواهیم پرداخت.
کاربرد های ریدایرکت چیست؟
ممکن است به دلایل مختلفی مجبور به تغییر آدرس سایت خود شوید. طبیعی است که هر سایت، مخاطبان خاص خود را دارد و به همین جهت برای حفظ کاربران باید چاره ای اندیشید. چون کاربران شما از طریق وبسایتتان با شما آشنا شدهاند و با شما در ارتباط هستند؛ توسط ریدایرکت کردن سایت خود کاربر هنگام مراجعه به سایت شما پس از مدت زمانی معین به آدرس جدید شما منتقل میشود. بدین صورت، کاربران سایت شما و مخاطبانتان با تغییر آدرس سایت از بین نخواهند رفت.
انواع ریدایرکت ها کدامند؟
به طور کلی تقسیم بندی ریدایرکت ها بر دو نوع است:
نوع اول: انتقال از یک صفحه یا آدرسی خاص به یک صفحه یا آدرس خاص دیگر
نوع دوم: انتقال کامل سایت به یک سایت و آدرس دیگر
نوع اول، برای مواردی است که یک موضوع خاص در سایت شما، دارای بیش از یک صفحه باشد و برای مسائل مرتبط با سئو سایت، باید یکی از این صفحات وجود داشته باشند. به عنوان مثال ممکن است ۲ صفحه درباره سئو در سایت شما وجود داشته باشند؛ برای این مهم، شما باید یکی از صفحات را به دیگری انتقال دهید تا از نظر سئو دچار مشکل نشوید.
نوع دوم نیز که برای انتقال کامل سایت به سایت دیگر است، معمولا برای سایت هایی استفاده میشود که آدرسشان شامل تغییراتی شده است و دامنه سایت توسط مدیریت سایت عوض شده باشد.
انواع رایج ریدایرکت ها عبارتند از ۳۰۱، ۳۰۲ و ۳۰۷ میباشند که در ادامه این مطلب به توضیح و کاربرد هریک خواهیم پرداخت و هم چنین تفاوت هریک از آنها را با دیگری خواهیم گفت تا بتوانید بهترین نوع را برای کاربری خود انتخاب کنید و از آن استفاده کنید.
ریدایرکت ۳۰۱ و ۳۰۲
این دو نوع ریدایرکت، کاربرد کاملا یکسانی باهم دارند. توسط این دو نوع از ریدایرکشن، علاوه بر انتقال کاربران سایت به آدرس جدید، موتور های جست و جو نیز به آدرس جدید منتقل میشوند. بدین وسیله، پس از انتقال سایت شما، از ارزش سایت شما کاسته نمیشود و سئو شما آسیب نخواهد دید. ولی شاید با خودتان بگویید که اگر کاربرد این دو نوع یکسان است، چرا دو نام برای آنها انتخاب شده است؟ پاسخ این سوال، این است که از ریدایرکت ۳۰۱ برای انتقال دائمی استفاده میشود درحالیکه از ریدایرکت ۳۰۲ برای انتقال موقتی استفاده میشود.
توسط این دو نوع ریدایرکت، پس از اینکه سایتتان را با آدرس جدید بالا بیاورید، مشاهده خواهید کرد که نتایج جستجو گوگل شما با سایت قدیم یکسان است. یعنی اگر با کلمه سئو، صفحه ۱ گوگل بوده اید، حالا هم پس از انتقال به سایت جدید، سایتتان در صفحه اول خواهد بود. اگر سایت شما قرار است به طور موقت منتقل شود، از ۳۰۲ استفاده میکنیم و اگر تصمیم به تغییر دائمی آدرس سایت است، از ۳۰۱ بهره خواهیم برد.
از این دو نوع ریدایرکت، تحت هیچ شرایطی به جای دیگری استفاده نکنید. اگر از ۳۰۲ استفاده کنید، ارزش دامنه اصلی شما از بین نخواهد رفت ولی اگر بعد از چند وقت، باز هم صفحه ریدایرکت شده آنلاین نشود، از نتایج حذف خواهد شد. این درحالیست که سایت جدید نیز رتبه ای دریافت نکرده است.
هم چنین استفاده از ریدایرکت ۳۰۱ برای انتقال موقت اشتباه است چراکه توسط این نوع از ریدایرکشن، ارزش دامنه اولیه شما از بین خواهد رفت و به دامنه جدید منتقل میشود. در نتیجه پس از مدتی که سایت خود را دوباره آنلاین کنید، مشاهده میکنید که رتبه سایت شما مانند قبل نیست و رتبه ای در گوگل ندارد.
ریدایرکت ۳۰۷
این نوع ریدایرکت، یکی از انواعی است که شاید نام آن را زیاد نشنیده باشید. در واقع این نوع، فرآیند کاری مانند ریدایرکت ۳۰۲ دارد ولی بسیار از آن ضعیف تر است. به همین دلیل، استفاده از ریدایرکت ۳۰۷ به هیچ عنوان به کاربران پیشنهاد نمیشود و برای کاربرد این نوع، استفاده از نوع ۳۰۲ بسیار مناسب تر خواهد بود.
ریدایرکت در پرستاشاپ توسط PrestaLink
یکی از اسکریپت های فروشگاهی محبوب، پرستاشاپ میباشد. توسط افزونه پرستالینک، به شما امکان انواع ریدایرکت با انجام چند کلیک ساده داده میشود. کار با آن نیز بسیار ساده است و با افزودن لینک سایت جدید و انتخاب نوع ریدایرکت مورد نظر شما، کار انجام خواهد شد.
ریدایرکت در وردپرس توسط افزونه Redirections
این افزونه را به جرأت میتوان بهترین افزونه برای ریدایرکت سایت وردپرسی دانست که استفاده از آن نیز بسیار ساده است. پس از نصب افزونه و رفتن به این افزونه، بر روی Redirects کلیک کنید. در پایین صفحه، لینک قدیم و لینک جدید را وارد کنید و بر روی Add Redirection کلیک کنید. برای انتخاب نوع ریدایرکشن نیز پس از افزودن، بر روی edit در منو بالا کلیک کنید و از قسمت HTTP Code، نوع ریدایرکشن مورد نظر خود را انتخاب کنید.
ریدایرکت تمامی صفحات سایت به سایت جدید
یکی از اصلی ترین قسمت های هر سایت، صفحات جانبی آن هستند. برای انتقال صفحات متفرقه به سایت جدید با همان آدرس ها، کافیست در هاست خود فایل .htaccess ایجاد کرده و کد زیر را در آن قرار دهید. (جایگزینی های لازم را انجام دهید پیش از ذخیره کردن، olddomain دامنه قدمی شما و newdomain دامنه جدید شماست)
# options+FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^olddomain\.com$ [OR] RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$ RewriteRule ^(.*)$ "http\:\/\/www\.newdomain\.com\/$1" [R=301,L]
ریدایرکت یک صفحه بر روی یک صفحه دیگر توسط .htaccess
کاربرد اصلی این موضوع، برای یکی کردن صفحاتی است که موضوع یکسان دارند و ممکن است به سئو شما آسیب برسانند. برای این کار، در فایل .htaccess خود، کد زیر را قرار دهید.
RedirectMatch 301 /old-address https://desproud.com/new-address
حذف/اضافه کردن www از دامنه
برای حذف یا اضافه کردن قسمت wwwاز دامنه، کافیست دامنه خود را به دامنه خودتان منتقل کنید و در قسمت دامنه جدید، www را حذف/اضافه کنید. برای این کار، از دستور زیر در .htaccess استفاده کنید.
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
اگر از گواهی SSL نیز برای سایت استفاده میکنید، کافیست این دستور را قرار دهید.
RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] RewriteCond %{HTTPS} on RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
حذف “/” از انتهای آدرس
“/” موجود در آخر آدرس سایت ها را اکثرا مشاهده کرده اید و شاید تمایل به حذف آن ها داشته باشید. این “/” ها معمولا توسط افزونه های سئو ایجاد میشوند. در استفاده از دستورات زیر برای .htaccess نهایت دقت را داشته باشید چرا که ممکن است پس از حذف “/” از انتهای آدرس، مشکل ارور ۴۰۴ برای سایت شما پیش بیاید.
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !\.(gif|jpg|png|jpeg|css|js)$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} !^\.localhost$ [NC] RewriteRule ^(.+[^/])/$ http://%{HTTP_HOST}/$1 [R=301,L]
ریدایرکت ساب دامنه بر روی دامنه اصلی
برای این کار نیز کافیست دستور زیر را در .htaccessوارد کنید. به جای sub.desproud.com ساب دامنه مورد نظر و به جای desproud.com نیز دامنه اصلی سایتتان را قرار دهید.
#Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_HOST} ^sub.desproud.com$ [OR] RewriteCond %{HTTP_HOST} ^www.sub.desproud.com$ RewriteRule (.*)$ https://desproud.com/$1 [R=301,L]
انجام معکوس فرآیند بالا نیز به راحتی قابل انجام است و با کد زیر در .htaccess میسر میشود.
Options +SymLinksIfOwnerMatch RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.)?desproud\.com$ [NC] RewriteRule ^ http://sub.desproud.com[R,L]
ریدایرکت ساب دامنه بر روی ساب دامنه دیگر
برای انتقال ساب دامنه ای به ساب دامنه ای دیگر از کد زیر استفاده نمایید.
Options +SymLinksIfOwnerMatch RewriteEngine on RewriteCond %{HTTP_HOST} ^sub1\.desproud\.com$ [OR] RewriteCond %{HTTP_HOST} ^www\.sub1\.desproud\.com$ RewriteRule ^/?$ "http\:\/\/sub2\.desproud\.com" [R=301,L]
ریدایرکت پسوند به پسوند دیگر
بسیاری پیش میآید که نیاز پیدا میکنید به عنوان مثال تمامی پسوند های html شما، به php تغییر پیدا کنند. برای این کار، دستور زیر را در .htaccess وارد کنید.
RedirectMatch 301 (.*)\.html$ https://desproud.com$1.php
کد بالا، تمامی صفحاتی همانند https://desproud.com/page.html را به https://desproud.com/page.php ریدایرکت ۳۰۱ میکند.
ریدایرکت صفحات در زبان های برنامه نویسی مختلف
ریدایرکت توسط HTML
کد زیر را در بین تگ <head> قرار دهید.
<meta http-equiv="refresh" content="3; url=https://desproud.com">
مقدار content زمان شروع ریدایرکت پس از Load صفحه میباشد.
ریدایرکت توسط PHP
<? Header( "HTTP/1.1 301 Moved Permanently" ); Header( "Location: https://desproud.com" ); ?>
ریدایرکت توسط ASP
<%@ Language=VBScript %> <% Response.Status="301 Moved Permanently" Response.AddHeader "Location","https://desproud.com/" %>
ریدایرکت توسط ASP.NET
<script runat="server"> private void Page_Load(object sender, System.EventArgs e) { Response.Status = "301 Moved Permanently"; Response.AddHeader("Location","https://desproud.com"); } </script>
ریدایرکت توسط JavaScript
<% response.setStatus(301); response.setHeader( "Location", "https://desproud.com/" ); response.setHeader( "Connection", "close" ); %>
ریدایرکت توسط CGI Perl
$q = new CGI; print $q->redirect("https://desproud.com/");
ریدایرکت توسط Ruby
def old_action headers["Status"] = "301 Moved Permanently" redirect_to "https://desproud.com/" end
ریدایرکت توسط ColdFusion
<.cfheader statuscode="301" statustext="Moved permanently"> <.cfheader name="Location" value="https://desproud.com">
سلام من با افزونه yoast pro وردپرس قسمت ” میزفرمان جستجو ” لینک هارو مشخص میکنم که چه نوع ریدایرکتی بشن آیا همین عمل کافیه ؟
سلام
بله، فرقی نداره که با کد یا افزونه این کار را انجام دهید.