ریدایرکت دامنه از طریق htaccess. ، PHP HTML و JavaScript چطور انجام می شود ؟
ریدایرکت دامنه برای پروژه های بزرگ وب نقش اساسی دارد . گزینه انتقال ترافیک از یک وب سایت به وب سایت دیگر ، به اپراتور های وب سایت کمک می کند تا جریان بازدید کنندگان را بهتر مدیریت کنند و اقدامات بازسازی سایت را به درستی انجام دهند .
علاوه بر این ، ریدایرکت دامنه به کاربران امکان می دهد محتوای یکسان را در دامنه های مختلف ارسال کنند ؛ بدون این که این موارد به عنوان محتوای تکراری طبقه بندی شوند . علاوه بر این ، ریدایرکت دامنه یک ابزار مدیریت شاخص کارآمد برای بهینه سازی موتور جستجو است .
در رابطه با این وظیفه ، گزینه های زیادی در اختیار اپراتور های وب سایت برای ریدایرکت دامنه ها یا زیر دامنه ها است . این ها را می توان در یک حضور وب منتقل کرد یا به یک آدرس خارجی ریدایرکت کرد .
این ریدایرکت ها اغلب از طریق گزینه های معروف مثل .htaccess ، اسکریپت PHP ، متا تگ های HTML و JavaScript انجام می شوند .
پیشنهاد مطالعه : مقاله دلایل استفاده از ریدایرکت
عنوان های این مقاله :
- ریدایرکت دامنه های وب سایت
- انواع ریدایرکت دامنه
- ریدایرکت های Server-side
- نکته سئو
- ریدایرکت های Client-side
ریدایرکت دامنه های وب سایت
اساساً ، از ریدایرکت ها برای آگاهی دادن به سرور ها استفاده می شود ، که محتوای سایت از یک URL به آدرس دیگری منتقل شده است .
انجام این کار زمانی ضروری است که وب آدرس اصلی ، هدفِ لینکِ ورودی باشد ، در کامپیوتر بازدید کننده ذخیره شده باشد یا در صفحات نتیجه موتور جستجو (SERP) جایگاه برجسته ای داشته باشد .
در این حالت ، ریدایرکت با مرورگر یا خزنده وب ارتباط برقرار می کند که محتوای مورد نظر منتقل شده است ، در عوض لینکی به آدرس جدید به کاربر ارائه می دهد .
بدون چنین ریدایرکت هایی ، اپراتور های وب سایت به جای سایت جستجو شده با صفحه خطای 404 روبرو می شوند . این چیزی است که به ویژه پروژه های وب تجاری از آن جلوگیری می کنند .
فروشگاه های آنلاین طیف وسیعی از محصولات را که به طور متنوعی در صفحات وب مختلف نمایش داده می شود ، ارائه می دهند . وقتی کالایی دیگر در دسترس نباشد ، مشتریان فعلی سپس به صفحه ای با محصولات مشابه هدایت می شوند .
این کار باعث می شود تا جمعیت بازدید کنندگان با کارایی بیشتری ریدایرکت شود و همچنین نرخ پرش را به حداقل می رساند .
علاوه بر این ، ریدایرکت دامنه امکان دسترسی به محتوای یکسان را در وب آدرس های مختلف فراهم می کند . در طول این مرحله ، تمام آدرس های جایگزین به سمت دامنه اولویت بندی شده وب سایت هدایت می شوند .
انواع ریدایرکت دامنه
به طور کلی تمایزی بین ریدایرکت های client-side و server-side وجود دارد . با ریدایرکت دامنه server-side ، کد های مربوط به وضعیت HTTP به عوامل کاربر (مرورگر ها یا خزنده های وب ) منتقل می شوند .
در مورد ریدایرکت های client-side ، مسئله کمی متفاوت به نظر می رسد : این موارد بدون هیچ گونه پاسخی انجام می شوند ، به این معنی که هیچ کد استاتوسی صادر نمی شود . به همین دلیل است که این مورد توسط هر عامل کاربر پشتیبانی نمی شود .
این اتفاق حتی گاهی اوقات می تواند منجر به شرایطی شود که بازدیدکنندگان در وب سایت اصلی باقی بمانند و به صفحه جدید هدایت نشوند . چنین اشکالاتی تنظیم این گزینه در سمت سرور را به عنوان معیار ارجح برای ریدایرکت ها درنظر گرفته است . وقتی ریدایرکت دامنه سمت سرور به دلیل موانع فنی منتفی شده ، از سولوشن های client-side فقط باید استفاده شود .
ریدایرکت های Server-side
در بیشتر موارد ، ریدایرکت دامنه سمت سرور از طریق فایل پیکربندی ، .htaccess یا یک اسکریپت PHP انجام می شود . مزیتی که این روش ها ارائه می دهند ، این است که می توان به صورت جداگانه کد وضعیت HTTP را برای عامل کاربر نمایش داد .
این کار به اپراتور های وب سایت امکان می دهد تا هدایت دامنه را به صورت دائمی یا موقتی علامت گذاری کنند . در اینجا ، کد وضعیت HTTP 301 و 302 مد نظر است .
301 – به طور دائمی منتقل شد .
منبع درخواستی اکنون به طور دائم در زیر URL ریدایرکت شده در دسترس است . URL قدیمی از این مرحله به بعد نامعتبر خواهد ماند .
302 – به طور موقت منتقل شد .
منبع درخواستی تحت URL ریدایرکت شده در دسترس است . برخلاف کد 301 ، URL اصلی همچنان معتبر است .
اگر کد وضعیت HTTP به صراحت تعریف نشده باشد ، وب سرور هنگام ریدایرکت server-side ، کد وضعیت 302 را منتقل می کند . این همیشه ضروری نیست و توصیه می شود هنگام هر تغییر مسیر ، کد وضعیت دلخواه را به صورت دستی وارد کنید .
زیرا این امر به کاهش احتمال وقوع خطا های نمایه سازی مثل هایجکینگ URL کمک می کند . بر خلاف ریدایرکت 301 ، کد وضعیت 302 به خزنده های وب اطلاع می دهد که URL اصلی باید در فهرست باقی بماند .
هنگامی که برای کار دائمی در نظر گرفته می شود ، آدرس ریدایرکت با مقصد ریدایرکت در فهرست موتور جستجو رقابت می کند .
نکته سئو
استفاده از یک ریدایرکت مناسب ، باعث می شود که لینک های ورودی به همین ترتیب ریدایرکت شوند و همچنین به وب سایت کمک می کند تا رتبه بندی جستجو خود را حفظ کند و از ترافیک پایین هم جلوگیری می کند .
ریدایرکت htaccess.
htaccess یک فایل پیکربندی برای سرور های Apache است که برای رونویسی پیکربندی مرکزی در سطح دایرکتوری استفاده می شود . این فایل به اپراتور های وب سایت اجازه می دهد تا تنظیمات خاص دایرکتوری را برای دامنه ها و زیر شاخه های آن ها انجام دهند .
یکی از توابع فایل htaccess. شامل ریدایرکت آدرس های جداگانه به سمت سرور از طریق آدرس های دیگر است .
هنگامی که یک فایل htaccess. با کد زیر در فهرست اصلی قرار گرفت ، درخواست ها برای دامنه اصلی از سمت سرور به دامنه ” www.example.com ” هدایت می شوند :
htaccess. به یک دامنه جدید ریدایرکت می شود .
1 |
<strong><code class="rainbow language-mixed rb1">redirect 301 / http://www.example.com/</code></strong> |
خط کد با ” ریدایرکت 301 ” آغاز می شود و کد وضعیت HTTP را که باید توسط سرور منتقل شود تعیین می کند . سپس این مسیر به سمت محتوایی که باید ریدایرکت شود ، دنبال می شود .
همانطور که در اسلش فوروارد بالا ذکر شده است ، در این حالت کلیه مطالب ریدایرکت می شوند . مرحله آخر وقتی ریدایرکت می شود که URL کامل مقصد به URL عامل کاربر هدایت شود :
یعنی « http://www.example.com ».
این روش اجازه ریدایرکت فایل های منفرد را می دهد . کد زیر ریدایرکت از یک وب سایت به وب سایت دیگر را نشان می دهد :
htaccess. از ساب دامین به URL دیگری ریدایرکت می شود .
1 |
<span id="rb2ln1" class="line" data-line="1"></span><strong>Redirect 301 / http://www.example.com/</strong> |
پس از رسیدگی به کد وضعیت HTTP 301 ، مسیر فهرست فایل ، که باید برای همیشه ریدایرکت شود ( ‘/directory/example-document.html’ ) و URL ریدایرکت ( ‘http://www.example.com /example.html ‘ ) نامگذاری شده اند .
در اینجا نحوه تغییر مسیر دائمی می تواند در یک سرور Apache با ماژول mod_rewrite فعال به نظر برسد :
1 2 |
<strong><code class="rainbow language-mixed rb3">RewriteEngine On <span id="rb3ln2" class="line" data-line="2"></span>RewriteRule ^directory/example-document.html$ http://www.example.com/example.html [L,R=301]</code></strong> |
در خط کد 01 ، ماژول سرور Apache mod_rewrite با دستور ” RewriteEngine On ” فعال می شود . به دنبال این ، یک ‘ RewriteRule ‘ با مسیر فایل ریدایرکت و آدرس مقصد وجود دارد .
نماد های Caret و دلار آغاز و پایان مسیر را مشخص می کنند و L آخرین قانون بازنویسی mod را برای درخواست مربوطه برچسب گذاری می کند . R = 301 استاتوس HTTP 301 را فوروارد می کند .
هنگام پیکربندی ریدایرکت دامنه از طریق htaccess. توجه به این نکته مهم است که ورودی های اشتباه ممکن است تأثیرات جدی بر عملکرد وب سایت داشته باشند . با توجه به اینکه این تغییرات مستقیماً پس از ذخیره فایل htaccess. به اجرا در می آیند ، تنظیمات تطبیق باید همیشه کاملاً آزمایش شوند .
ریدایرکت های PHP
تغییر مسیر دامنه همچنین می تواند از طریق یک دستور در یک اسکریپت PHP ( به عنوان مثال در index.php ) انجام شود . کد زیر ریدایرکت دائمی به آدرس مقصد ساختگی ، ” www.example.com ” را نشان می دهد .
ریدایرکت از طریق PHP
1 2 3 4 5 |
<span id="rb4ln1" class="line" data-line="1"></span><strong><?php <span id="rb4ln2" class="line" data-line="2"></span>header("Status: 301 Moved Permanently"); <span id="rb4ln3" class="line" data-line="3"></span>header("Location: http://www.beispiel.de"); <span id="rb4ln4" class="line" data-line="4"></span>exit; <span id="rb4ln5" class="line" data-line="5"></span>?></strong> |
هنگام ارسال از طریق اسکریپت PHP ، کد استاتوس HTTP در نظر گرفته شده از طریق تابع ” header ” در خط دوم کد تعریف می شود . در این مثال ، یک ریدایرکت 301 دائمی انجام می شود .
با توجه به اینکه تغییر مسیر های سمت سرور معمولاً به صورت موقتی انجام می شوند ، تغییر مسیر های دائمی که از طریق کد استاتوس 301 اتفاق می افتد ، باید صریحا وارد عمل شوند . آدرس مقصد ریدایرکت دامنه نیز در اینجا با عنوان ” header ” ثبت شده است .
ریدایرکت در این مثال سپس به آدرس ، ” http://www.example.com ” می رود . عملکرد خروج در خط 04 کد اسکریپت را به پایان می رساند و از اجرای یک خط کد بعدی جلوگیری می کند .
برای اینکه ریدایرکت ها از طریق اسکریپت PHP کار کنند ، بلاک کد باید در ابتدای صفحه HTML باشد . با این کار سرور از انتقال محتوای HTML به صفحه ریدایرکت جلوگیری می کند .
نکته سئو
از ریدایرکت زنجیره ها خودداری کنید! بسیاری از آن ها منجر به کاهش ترافیک می شوند .
ریدایرکت های client-side
اگر به دلایل فنی انجام ریدایرکت دامنه سمت سرور امکان پذیر نباشد ، اپراتور های وب سایت امکان استفاده از سولوشن های client-side را دارند . متا تگ refresh ” HTML ” و همچنین JavaScript مربوطه برای این مورد در دسترس هستند .
نقطه ضعف ریدایرکت های client-side این است که سرور ها کد های استاتوس HTTP را به مرورگر های درخواست کننده یا خزنده وب تحویل نمی دهند . به این معنی که آن ها به طور وضح و دقیق از تغییر مسیر اطلاع ندارند .
علاوه بر این ، ارجاع های client-side توسط همه عوامل کاربر پشتیبانی نمی شود . به این معنی که این خطر وجود دارد که همه بازدید کنندگان وب سایت ریدایرکت نشوند .
ریدایرکت های client-side تأثیر منفی در نمایه سازی موتور جستجو دارد . حذف صریح از نمایه سازی از طریق کد استاتوس HTTP 301 در ریدایرکت های سمت کاربر رخ نمی دهد . این امر می تواند منجر به ریدایرکت دامنه ها با دامنه های مقصد در مورد موضوعات مرتبط با رتبه بندی موتور جستجو شود .
برخلاف تغییر مسیر های سمت سرور ، که تا حد زیادی برای کاربران غیرقابل مشاهده است ، ریدایرکت سمت کاربر همیشه با تأخیر همراه است . که حتی ممکن است در پایان برخی از کاربران متوجه شوند .
فوروارد از طریق HTML meta refresh
ریدایرکت های متا HTML از طریق تگ های متا با ویژگی http-equiv اجرا می شوند . تمام آنچه برای این کار لازم است ، یک فایل HTML ساده و برچسب تطبیق در عنوان برای ایجاد ریدایرکت ها است .
برای اینکه بازدید کنندگان از ریدایرکت مطلع شوند ، باید یک اطلاعیه مربوطه در سند HTML تنظیم شود . مثال های معمولی شامل خطوطی مثل : لطفاً چند لحظه صبر کنید یا شما ریدایرکت می شوید به … ’. ریدایرکت دامنه ساده از طریق HTML meta refresh به شرح زیر است :
ریدایرکت از طریق HTML meta refresh
1 |
<strong><code class="rainbow language-mixed rb5"><meta http-equiv="refresh" content="10; url=http://www.example.com/"></code></strong> |
از کاربرخواسته می شود تا از طریق برچسب متا http-equiv=‘refresh‘ ریدایرکت دامنه را انجام دهد . اینکه چطور این اتفاق می افتد را می توان در ویژگی محتوا تعریف کرد . مثال بالا پس از ده ثانیه کاربران را به دامنه مقصد ، ” www.example.com ” ریدایرکت می کند .
ریدایرکت JavaScript
جاوا اسکریپت امکان ریدایرکت آسان دامنه سمت کاربر را فراهم می کند . با این حال ، همانطور که در مورد متا تگ ‘refresh’ وجود دارد ، از تغییر مسیر های جاوا اسکریپت فقط باید به صورت موردی استفاده شود .
زیرا این زبان مبتنی بر اسکریپت به دلیل مشکلات امنیتی توسط هر مرورگر وب پشتیبانی نمی شود . JavaScript همچنین می تواند برای خزنده های وب و کاربران دارای افزونه های فعال NoScript مشکل ایجاد کند . در اینجا نحوه جستجوی کد برای ریدایرکت دامنه از طریق JavaScript آمده است :
ریدایرکت از طریق JavaScript
1 2 3 4 5 |
<strong><code class="rainbow language-mixed rb6"><script> <span id="rb6ln2" class="line" data-line="2"></span><!-- <span id="rb6ln3" class="line" data-line="3"></span>window.location.replace('http://www.example.com'); <span id="rb6ln4" class="line" data-line="4"></span>//--> <span id="rb6ln5" class="line" data-line="5"></span></script></code></strong> |
مهم ترین چیز در اینجا خط سوم کد است . در کد مثال ، برای اشاره به آدرس وب سایت فعلی ، از اوبژه ، ” window.location ” استفاده شده است . دستور ‘replace’ به مرورگر دستور می دهد تا کاربر را به دامنه مقصد واقع در داخل پرانتز ریدایرکت کند ، به عنوان مثال ” www.example.com ” .