بررسی کامل ریدایرکت 301 و نحوه اجرای کدهای آن

09 اردیبهشت 1398
ریدایرکت 301

همانطور که به یاد دارید در درس «ریدایرکت چیست و چرا انجام می شود؟» به تعریف ریدایرکت و توضیح انواع آن پرداختیم. همچنین موارد استفاده از ریدایرکت در وب سایت را نیز توضیح دادیم. حال در این درس قصد داریم ریدایرکت 301 که مهمترین نوع تغییر مسیر در وب سایت محسوب می شود را زیر ذره بین برده و درباره اجرای کد های مرتبط با آن نیز، با یکدیگر بحث کنیم. با ما همراه باشید...

ریدایرکت 301. چرا؟ چطور؟ چگونه؟!

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

سه دلیل مهم برای استفاده از تغییر مسیر به شکل 301 موارد زیر محسوب می شوند.

  1. حذف و اضافه خودکار پروتکل های تحت وب مانند http:// و یا www به آدرس وب سایت
  2. برای ریبرندینگ (تغییر نام و دامنه برند) و مهاجرت به آدرس اینترنتی جدید
  3. انتقال از صفحات قدیمی سایت به صفحات جدید و همچنین انتقال سئو و اعتبار آنها به آدرس های جدید

سوال: آیا با ریدایرکت 301 اعتبار و رتبه صفحات قدیمی به صفحات جدید منتقل می شود یا خیر؟

پاسخ: بنا به تحقیقات وب سایت های معتبر در این زمینه، چنین مواقعی نزدیک به 70 درصد رتبه و اعتبار آدرس قبلی به آدرس جدید منتقل می شود. بنابراین نیاز نیست برای کسب مجدد رتبه و اعتبار برای صفحات یا دامنه های جدید موراد سئو را از صفر شروع کنید.

نحوه ریدایرکت 301 پروتکل ها در فایل .htaccess

یکی از رایج ترین شیوه های پیاده سازی ریدایرکت 301 استفاده از فایل .htaccess می باشد که در ریشه سایت (فولدر public_html در هاست) شما موجود است. این فایل برای ریدایرکت های مرتبط با پروتکل های تحت وب بسیار مورد استفاده قرار می گیرد.

توجه: در اکثر مواقع این فایل از قبل روی هاست موجود است و نیاز به ساخت آن نیست. تنها باید دقت کنید که از آنجا که فایل هایی که با دات(.) شروع می شوند معمولا در هاست به حالت پنهان(hidden) هستند باید ابتدا از قسمت تنظیمات هاست تیک گزینه show hidden files را فعال کنید تا فایل نمایش داده شود و بتوانید آنرا ویرایش کنید. اگر این فایل از قبل موجود نباشد می توانید یک فایل با همین نام ایجاد کنید.

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

اما ریدایرکت های مرتبط با پروتکل ها دقیقا چه مواردی هستند؟

حذف و اضافه www در ابتدای سایت به صورت خودکار

ریدایرکت www در ابتدای سایت

گاهی اوقات تمایل دارید سایت شما حتما با پیشوند www برای مخاطبان نمایش داده شود حتی اگر آنها بدون www آدرس سایت را تایپ کردند. در این حال می توانید کد های زیر را در جای مناسبی (معمولا خط اول) از فایل .htaccess کپی کنید. فراموش نکنید که به جای example.com باید آدرس سایت خود را جایگزین کنید.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]

همچنین اگر می خواهید سایت شما حتما بدون www نمایش داده شود حتی اگر مخاطبان آنرا با www تایپ کردند از کد زیر به جای کد بالا استفاده کنید. فراموش نکنید که آدرس سایت خود را جایگزین example.com کنید.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC]

لازم به ذکر است در صورت استفاده از برخی افزونه های مرتبط با ریدایرکت و یا برخی تغییرات در تنظیمات پنل وردپرس ممکن است کد های بالا کارایی خود را از دست بدهند. در صورتی که در اجرای کد های بالا به مشکل برخوردید در قسمت نطرات با ما در میان بگذارید و یا با یک متخصص وب سایت و سئو مشورت کنید.

حال به سراغ یکی دیگر از موارد رایج ریدایرکت 301 می رویم.

انتقال از http:// به https:// و بالعکس

ریدایرکت پروتکل http و https

برای ریدایرکت کردن پروتکل http به https می توانید از کد زیر در ابتدای فایل .htaccess استفاده کنید. فراموش نکنید این مورد تنها برای سایت های امن می باشد که که گواهینامه SSL برای آنها فعال می باشد.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

همچنین برای ریدایرکت پروتکل https به http از دستور زیر استفاده کنید. استفاده از این دستور برای تمام سایت هایی که گواهینامه SSL ندارند پیشنهاد می شود.

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

انتقال یک فایل یا صفحه از طریق .htaccess

برای آنکه یک فایل را به صورت جداگانه به یک فایل از یک دامنه دیگر ریدایرکت کنید (برای مثال فایل example.com/old-adress.htm را به آدرس example.net/new-adress.htm منتقل کنید)، باید دستور زیر را در فایل htaccess. وارد نمایید:

 Redirect 301 /oldfile.htm http://example.net/newfile.htm

حتما به فاصله ها در کدهای دستوری بالا دقت کنید. همانطور که مشاهده می کنید یک فاصله بین کلمه redirect و 301 وجود دارد. یک فاصله بین کلمه 301 و آدرس مبدا. فاصله سوم نیز بین آدرس مبدا و آدرس مقصد. همچنین از آنجا که آدرس فعلی example.com می باشد از نوشتن ریشه دامنه مبدا در کد دستوری خودداری کرده ایم.

دستورات ریدایرکت 301 برای انتقال صفحات سایت

روش های بالا برای ریدایرکت پروتکل های سایت مورد استفاده قرار می گرفت و برای ریدایرکت یک یا چند صفحه از سایت کاربردی ندارند. برای تغییر مسیر صفحات سایت در زبان های برنامه نویسی مختلف می توانید از کدهای زیر در ابتدای صفحه قدیمی که قرار است به آدرس جدید منتقل شود استفاده کنید. فراموش نکنید که به جای http://www.new-url.com آدرس وبسایت خود را جایگزین کنید.

البته استفاده از این روش تنها برای کاربران حرفه ای که با زبان برنامه نویسی هدف آشنایی کم و بیش دارند توصیه می شود. برای کاربران مبتدی روش استفاده از افزونه را پیشنهاد می کنیم که در انتهای مقاله به توضیح آن خواهیم پرداخت.

دستور تغییر مسیر در زبان جاوا

<%
response.setStatus(301);
response.setHeader( “Location”, “http://www.new-url.com/” );
response.setHeader( “Connection”, “close” );
%>

دستور تغییر مسیر در زبان PHP

<?
Header( “HTTP/1.1 301 Moved Permanently” );
Header( “Location: http://www.new-url.com” );
?>

دستور تغییر مسیر در زبان ASP.NET

<script
runat=”server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(“Location”,”http://www.new-url.com”);
}
</script>

دستور تغییر مسیر در زبان ASP

<%@ Language=VBScript %>
<%
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”,”http://www.new-url.com/”
%>

استفاده از افزونه ها برای ریدایرکت 301

شاید ساده ترین روش برای ریدایرکت صفحات مختلف سایت استفاده از افزونه های مرتبط در این زمینه باشد. با یک جستجوی ساده می توانید افزونه های زیادی از این قبیل پیدا کنید. توصیه می کنیم، برای سایت های وردپرس از افزونه yoast که جامع ترین و پرطرفدارترین افزونه وردپرسی در زمینه سئو می باشد استفاده کنید. در این افزونه بخش مجزایی برای ریدایرکت ها در نظر گرفته شده است که می توانید انواع ریدایرکت را در آن اجرا کنید.

همچنین این افزونه ویرایش هایی را که در آدرس صفحات انجام می دهید را به صورت خودکار شناسایی کرده و آدرس های قدیمی را به صورت 301 به آدرس جدید منتقل می کند. فراموش نکنید که نسخه کامل و کرک شده را از سایت های فارسی زبان دانلود و به صورت دستی روی وردپرس خود نصب کنید تا از امکانات کامل آن بهره مند شوید.

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

پیروز و سربلند باشید....

نویسنده شوید
دیدگاه‌های شما (2 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

lplv
04 آبان 1402
اگر من به هر دلیلی یک صفحه مقاله رو از سایت دیلیت بکنم، اون صفحه تبدیل به ارور ۴۰۴ میشه. حالا اگر بخوام همون صفحه رو با کد PHP به یک صفحه مقاله مشابه ریدایرکت ۳۰۱ بکنم، این کد ریدایرکت رو کجا باید درج بکنم؟! چون اصلاً صفحه مقاله مبدأ وجود نداره که بخوام کد ریدایرکت رو در ابتداش درج کنم. سایت با سی ام اس اختصاصی هست.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

امین
18 آذر 1398
سلام من طبق این آموزش ریدایرکت www به بدون www رو برای سایت https://site.com/ انجام دادم و ریدایرکت اون به دستی انجام میشه. ولی اگر آدرس دیگه ایی باشه مثلا https://site.com/neshoni/edarat به بدون www ریدایرکت نمیشه . لطفاکمک کنید

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.