آموزش ریدایرکت آدرسهای سایت از طریق فایل htaccess.
How to Redirect Site URLs by Using htaccess File
امیررضا مهدیان۳ هفته پیشآخرین به روز رسانی: ۱۴۰۳/۰۳/۲۰
فایل htaccess (Hypertext Access). یکی از آشناترین فایلها برای توسعهدهندگان و مدیران وبسایت هاست. این فایل وظیفه برقراری ارتباط توسعهدهنده با وب سرور سایت را برعهده دارد و موجب میشود که مدیر سایت بتواند دستورات مشخصی را برای وب سرور تعریف کند. htaccess. در واقع یک فایل پیکربندی است که توسط وب سرورهای مبتنی بر آپاچی استفاده میشود.
پیش از این در مقالهای جامع به «بررسی فایل htaccess، نحوه ساخت این فایل و بررسی دستورات اولیه آن» پرداختهایم. از همین رو، در جهت پیشگیری از هدررفت وقت شما، از ارائه توضیحات مقدماتی در این مقاله میپرهیزیم و پیشنهاد میکنیم که چنانچه از شناخت کافی نسبت به فایل htaccess. برخوردار نیستید، از طریق لینک بالا نسبت به مطالعهی مقاله بررسی فایل htaccess. اقدام نمایید.
به طور ساده فایلهای پیکربندی، تنظیمات اولیه یک برنامه یا در این مورد وبسرور را پیکربندی میکنند. بدین معنی که فایل htaccess. میتواند برای ایجاد رفتار خاصی در سرور استفاده شود. همچنین بهوسیله آن میتوانیم دستوراتی را به وب سرور مورد استفاده در سرویس هاست وبسایت خود القا کنیم. هر خط از این فایل، فقط یک خط متن یا کد است که به سرور میگوید چه کاری انجام دهد.
فایل htaccess. یکی از اجزای اصلی تمامی سایتهاست. در حقیقت هر کاربری که سایت خود را بر روی یک سرویس میزبانی یا سرور مجهز به وب سرورهای Apache یا LiteSpeed بارگذاری کرده باشد، میتواند از فایلهای htaccess. برای برقراری ارتباط با وب سرور خود استفاده کند. لازم است اشاره کنیم که وب سرور Nginx بهتنهایی قادر به اجرای سینتکس فایل htaccess. نیست.
کاربرد فایل htaccess. بسیار گسترده است و برای درک کامل کدهای قرارگرفته در این فایل، یا افزودن دستورات مورنظر خود به این فایل، نیاز دارید که با سینتکس (Syntax) مخصوص وب سرورهای Apache آشنا باشید.
در این مقاله از نت افراز بلاگ، تمرکز اصلی ما بر روی مبحث ریدایرکت (Redirect) لینکهای سایت، با استفاده از فایل htaccess. است. اگر تصمیم به تغییر دامنه سایت خود دارید یا میخواهید کاری کنید که سایت شما از طریق پیشوند www هم قابل نمایش باشد و… تا انتهای این نوشته با ما همراه باشید.
آنچه در این مقاله میخوانید:
- نحوه دسترسی به فایل htaccess.
- در چه زمینهای میتوانم از htaccess. استفاده کنم؟
- ریدایرکت یک آدرس به آدرس دیگر با استفاده از htaccess.
- ریدایرکت آدرس سایتی به سایت دیگر از طریق htaccess.
- ریدایرکت تمامی صفحات سایت در زمان تغییر دامنه با htaccess.
- حل مشکل Duplicate Content با استفاده از فایل htaccess.
- ریدایرکت http به https با استفاده از فایل htaccess.
در چه زمینهای میتوانم از htaccess. استفاده کنم؟
امکان انجام دستورات زیادی با کمک htaccess وجود دارد. برای مثال میتوانید از آن برای موارد زیر استفاده کنید:
- از سایت خود با رمز عبور محافظت کنید و امنیت وبسایت خود را افزایش دهید.
- یک صفحه خطای سفارشی ایجاد کنید که سایت شما در هنگام خطا زیباتر به نظر برسد.
- بازدیدکنندگان را به صفحه دیگری هدایت کنید.
- امنیت وبسایت خود را افزایش دهید.
- مواردی را جهت بهبود سرعت وبسایت خود انجام دهید.
- برخی امکانات PHP را فعال و غیرفعال کنید.
- تغییراتی در پیکربندی وبسرویس ایجاد نمایید.
نحوه دسترسی به فایل htaccess.
شاید یکی از سوالات اصلی کاربران، ظاهر عجیب نامگذاری این فایل باشد. فایلهای “htaccess.” با یک نقطه (Dot) شروع میشوند و پس از آن تنها عبارت htaccess را داریم.
جالب است بدانید که عبارت htaccess، فرمت اصلی این گروه از فایلهاست و در حقیقت این فایلها بدون نام هستند! بگذارید با یک مثال، این مفهوم را سادهتر کنیم.
برای مثال، شما تصاویر خود را با فرمت jpg یا psd ذخیره میکنید و برای آنها نامی همچون netafraz تعیین میکنید. در این شرایط، فایل شما با نام “netafraz.jpg” در سیستم شما ثبت میشود. اما اگر برای این فایل نامی تعیین نکنیم چه میشود؟ در این شرایط فایل شما با نام “jpg.” ذخیره خواهد شد.
در این شرایط یک قانون به وجود میآید و آن هم این است که شما از هر فایل بدون نام با یک فرمت مشخص، تنها یک بار میتوانید در هر دایرکتوری و فولدر استفاده کنید. از همین رو باید بدانید که کلیه کدهای شما باید در همین فایل قرار بگیرند. برای مثال، ما تنها یک فایل htaccess. در دایرکتوری public_html سایت خود داریم و باید کلیه کدهای htaccess. مربوط به Root Document ما، در همین فایل قرار گیرد. همچنین کاربران وردپرس برای رمزگذاری صفحه ورود پیشخوان وردپرس خود، تنها میتوانند یک فایل htaccess. در دایرکتوری wp-admin سایت خود ایجاد کنند.
گاها در زمان ایجاد فایل htaccess، با خطایی مواجه میشوید که به شما میگوید در دایرکتوری مدنظرتان فایل htaccess. وجود دارد، اما شما هرچه میگردید چنین فایلی را نمیبینید.
باید اشاره کنیم که فایلهای htaccess، بنابر سیاست شرکت سازنده کنترل پنل Cpanel، در تمامی کنترل پنلهای این شرکت مخفی هستند، که برای مشاهده آنها میتوانید از آموزشی که پیش از این در نت افراز بلاگ برای شما آماده شده است، استفاده کنید.
مشاهده فایل htaccess. در Cpanel
وقت آن رسیده که کار با فایل htaccess. را شروع کنیم.
ایجاد فایل htaccess.
معمولا پس از نصب CMSهایی مثل WordPress، فایل htaccess. در شاخه public_html یا www هاست شما قرار میگیرد. در صورت عدم وجود این فایل میتوانید آن را بسازید. همچنین در دایرکتوریهای دیگر وبسایت نیز امکان ساخت فایل htaccess وجود دارد.
پس از ورود به دایرکت ادمین، از بخش مدیریت فایل، وارد شاخهی public_html شوید. سپس دایرکتوری که تصمیم به ایجاد فایل htaccess. در آن دارید را انتخاب نمایید. توجه داشته باشید که متداولترین شاخهای که برای ساخت فایل htaccess.، مورد استفاده قرار میگیرد، شاخه public_html است. نکته قابل ذکر این است که با ایجاد فایل htaccess. در این دایرکتوری و افزودن کدهای مدنظر خود به این فایل، میتوانید کلیه زیرشاخهها (Subdirectory) و فایلهای موجود در دایرکتوری public_html را مدیریت کنید.
سپس راست کلیک کرده و بر روی New File کلیک کنید.
سپس نام فایل را htaccess. بنویسید و بر روی Ok کلیک کنید.
اکنون فایل شما با موفقیت ساخته شده است.
لازم است مجددا یادآوری کنیم که زمان نصب وردپرس، این فایل بهصورت خودکار در دایرکتوری public_html برای شما ساخته شده است، لذا چنانچه از سیستم مدیریت محتوای وردپرس استفاده میکنید، نیازی به ایجاد این فایل نخواهید داشت.
ریدایرکت یک آدرس به آدرس دیگر با استفاده از htaccess.
از آنجایی که سینتکس کار با htaccess. کمی دشوار و غیرآشناست؛ ترجیح میدهیم که از سادهترین مثال شروع کنیم. در این مثال ما تنها میخواهیم که آدرس یکی از صفحات خود را به صفحه دیگر در دامنه خودمان تغییر دهیم.
پیش از شروع آموزش، لازم است که از فایل htaccess. سایت خود یک بکاپ تهیه کنید. توجه داشتهباشید که تهیه نسخه پشتیبان از فایل htaccess. بسیار ضروری است. شما با دانلود این فایل و ذخیره آن بر روی سیستم شخصی خود، یا کپی کردن تمامی رشته کدهای این فایل در یک فایل متنی همچون یک فایل txt میتوانید اطمینان حاصل کنید که در صورت وقوع هر اتفاق برنامهریزی نشده یا مشکلی، میتوانید وضعیت را به شکل سابق بازگردانید. برای این کار تنها کافیست که در صورت وقوع مشکل، فایل htaccess. موجود بر روی سرویس میزبانی خود را حذف کرده و فایل htaccess بکاپ خود را مجددا بر روی هاست آپلود کنید.
برای مثال میخواهیم آدرس اول دامنه فرضی خودمان را به آدرس دوم دامنه خودمان ریدایرکت کنیم.
آدرس اول : abc.com/one آدرس دوم : abc.com/two
ریدایرکت کردن یک آدرس دارای متدهای گوناگونی است. ما سه نوع ریدایرکت اصلی داریم که بهترتیب عبارتند از:
ریدایرکت ۳۰۱، انتقال لینک دائمی (Permanent Redirect): ریدایرکت ۳۰۱ یک ریدایرکت سمت سرور است که علاوه بر انتقال کاربر از آدرس مبدا به آدرس مقصد، به موتورهای جستجو اعلام میکند که محتوای آدرس مبدا به طور دائمی و برای همیشه به آدرس مقصد منتقل شده است.
معمولاً بهترین گزینه شما برای استفاده از ریدایرکت، همین ریدایرکت ۳۰۱ است. ضمناً به این نکته نیز باید اشاره کنیم که به خاطر همیشگی بودن ریدایرکت ۳۰۱، اغلب مرورگرها این تغییر مسیرها را در حافظه خود ذخیره میکنند (cache)، لذا این مورد را در هنگام تنظیم و تست ریدایرکتها در خاطر داشته باشید.
ریدایرکت ۳۰۲، انتقال لینک موقت (Temporary Redirect): ریدایرکت ۳۰۲ یکی دیگر از انواع ریدایرکتهای سمت سرور است، که در حالی کاربر را از آدرس مبدا به آدرس مقصد انتقال میدهد که به موتورهای جستجو اعلام میکند که محتوای آدرس مبدا موقتاً به آدرس مقصد انتقال یافته است.
ریدایرکت ۳۰۳: ریدایرکت ۳۰۳ از ارسال مجدد فرمها با استفاده از دکمه بازگشت مرورگر (Back) جلوگیری میکند. از ریدایرکت ۳۰۳ فقط باید برای فرمهای وبسایت استفاده شود.
نهایتا لازم است اشاره کنیم که ما در این آموزش از ریدایرکت ۳۰۱ استفاده میکنیم.
برای این کار، لازم است که رشته کد خود را به فایل htaccess. موجود در Root Document سایت خود اضافه کنیم. برای سایتهای وردپرسی، روت داکیومنت، همان دایرکتوری “public_html” محسوب میشود. برای ویرایش فایل htaccess. هم تنها کافیست که دو بار بر روی آن کلیک کنید. با این کار صفحه ادیتور تعبیه شده در پنل دایرکت ادمین برای شما باز خواهد شد و میتوانید کدهای این فایل را تغییر داده یا کدهای خود را به آن اضافه کنید.
# Redirect to a URL on the same domain or host Redirect 301 "/one" "/two" ErrorDocument 404 /404page
همانطور که در مثال بالا دیدید، زمانی که ریدایرکت آدرس در سطح یک دامنه اتفاق میافتد، نیازی به وارد کردن آدرس دامنه نبوده و تنها باید آدرس صفحه وارد شود.
در رشته کد بالا، خط اول اصطلاحا کامنت (Comment) است و تنها در این جهت نوشته شده که اگر در آینده، خودمان یا کاربر دیگری تصمیم به ویرایش فایل htaccess. گرفت، بداند که هر تکه کد به چه دلیلی اضافه شده است. در سینتکس htaccess، با قرار دادن کاراکتر شارپ (#) در ابتدای هر خط، میتوانید یک کامنت تعریف کنید. پیشنهاد میکنیم که چنانچه تصمیم به اضافه کردن تکه کدی به فایل htaccess. سایت خود دارید، حتما در کامنتی به عملکرد آن تکه کد اشاره کنید.
خط دوم این تکه کد، اصطلاحا اکشن یا اقدام لازم (Action) را تعریف کرده است. در این خط به وب سرور گفتهایم که بازدیدکنندگان آدرس صفحه اول را به آدرس صفحه دوم، از طریق ریدایرکت ۳۰۱ منتقل کن. رایجترین زمان استفاده از این اکشن برای زمانیست که صفحهای از سایت ما بنابر دلایل مختلف از دسترس خارج شده و میخواهیم کاری کنیم که کاربران با ارور ۴۰۴ مواجه نشوند.
نهایتا در خط سوم به وب سرور گفتهایم که اگر نتوانست، هیچ کدام از صفحات بالا را پیدا کند، صفحه خطای ۴۰۴ را به کاربر نشان دهد. این کار باعث میشود که تجربه کاربری (User Experience) در سایت شما ارتقا یابد و در شرایط نامساعد، کاربران با صفحات سفید یا حلقههای ریدایرکت مواجه نشوند.
توجه داشته باشید که بهجای آدرس “404page/”، شما باید آدرس صفحه ۴۰۴ سایت خودتان را وارد نمایید. رشته کد بالا تنها در زمانی به درستی کار میکند که ما صفحهی خطای ۴۰۴ سایت خودمان را در آدرس زیر، به درستی طراحی کرده باشیم.
abc.com/404page
وقت آن رسیده که به سراغ یک مثال پیچیدهتر برویم.
ریدایرکت آدرس سایتی به سایت دیگر از طریق htaccess.
در مثال قبلی ما در سطح دامنه خودمان اقدام به ریدایرکت آدرسها نمودیم؛ اما به نظرتان برای ریدایرکت یک آدرس از سایت abc.com به سایت xyz.com باید چکار کرد؟
برای این کار تنها کافیست که از رشته کد زیر استفاده کنیم.
# Redirect to a different domain Redirect 301 "/one" "https://xyz.com/two"
توجه داشته باشید، از آنجایی که آدرس اول در سرویس میزبانی خودمان است و فایل htaccess. در هاستی مشترک با صفحه اول قرار دارد، نیازی به وارد کردن آدرس دامنه سایت مبدا نیست؛ اما آدرس صفحه مقصد باید بهطور کامل همراه با پروتکل امنیتی (https) و همچنین آدرس دامنه (xyz.com) نوشته شود.
رایجترین کاربرد این نوع از ریدایرکت، برای زمانی است که سرویسی از یک سایت حذف شده و به دامنه جدیدی انتقال یافته است. بهعنوان مثال، سایتی که پیش از این اقدام به فروش هاست و دامنه با یک دامنه مشترک نموده است، سرویس فروش دامنه خود را به یک Domain جدید انتقال میدهد و برای اینکه ارزش سئوی صفحه پیشین خود را به صفحه جدید انتقال دهد، از ریدایرکت ۳۰۱ استفاده میکند.
ریدایرکت تمامی صفحات سایت در زمان تغییر دامنه با htaccess.
این قابلیت را میتوان یکی از کاربردیترین قابلیتهای فایل htaccess دانست. گاها برای کاربران پیش میآید که زمان زیادی را صرف توسعه سایت خود کردهاند و اکنون توانستهاند پس از سختیهای بسیار، به جایگاه مناسبی در گوگل دست پیدا کنند. در برخی مواقع دیده میشود که شانس با این گروه از کاربران یار نبوده و مشکلات مختلفی مدیران سایت را مجبور به تغییر نام دامنه میکند. در این شرایط مدیران سایت به هزینههای مالی و زمانی که برای توسعه سایت گذاشتهاند فکر میکنند و حسرت میخورند که اکنون باید تمامی مسیر را با دامنه جدید از ابتدا طی کنند. اما بهنظر شما، گوگل به این مشکل کاربران فکر نکرده است؟!
جواب ساده است. گوگل با پیشبینی این مشکل، به صاحبان وبسایتها میگوید که هر زمان تصمیم به تغییر آدرس دامنه خود گرفتید، میتوانید از ریدایرکت کامل سایت خود استفاده کنید. با این کار تمامی امتیازات سئو دامنه قبلی شما به دامنه جدید انتقال مییابد و امتیاز هر صفحه در سایت پیشین به آدرس جدید انتقال مییابد.
البته لازم است اشاره کنم که تغییر دامنه اصلی سایت، کاملا هم بدون جریمه نیست و شما به صراحت در چند روز تا چندماه ابتدایی، پس از تغییر دامنه اصلی خود، شاهد افت ترافیک دریافتی از گوگل خواهید بود. با این وجود، همین که نیاز نیست از ابتدا شروع کنید، جای خوشحالی دارد!
اما روش کار به چه شکل است؟
برای این کار، مجددا به سراغ سایتهای فرضی خودمان، یعنی abc.com و xyz.com میرویم. فرض کنید که ما تعداد قابل توجهی از صفحات مختلف را در طی فعالیت خودمان در سایت abc.com ایجاد کردهایم و اکنون تصمیم داریم که دامنه خود را به xyz.com تغییر دهیم. نحوه کار باید به گونهای باشد که تمامی صفحات دامنه abc.com از طریق دامنه xyz.com در دسترس باشند و با خطای “Duplicate Content” نیز روبهرو نشویم.
برای این کار، تنها کافیست که رشته کد زیر را به ابتدای فایل htaccess. خودمان در سایت مبدا اضافه کنیم.
# redirect abc.com to xyz.com RewriteEngine On RewriteCond %{HTTP_HOST} !abc.com$ [NC] RewriteRule ^(.*)$ http://xyz.com/$1 [L,R=301]
همانطور که میبینید، تنها با ۳ خط کد در سینتکس htaccess. میتوانید، کار انتقال سایت از یک دامنه به دامنه دیگر را عملی کنید. همانطور که با رنگهای مختلف برایتان مشخص کردهایم، باید دامنه مبدا را بدون استفاده از عبارات “www” یا پروتکل امنیتی در خط دوم وارد کنید و دامنه مقصد را با توجه به کانفیگ سایت مقصد خود وارد نمایید. در مثال بالا، ما به پروتکل ایمنی سایت مقصد اشاره کردهایم؛ چراکه در سایت مقصد از پروتکل https جهت رمزنگاری دادهها استفاده میشود.
به همین راحتی میتوانید دامنه سایت خود را تغییر دهید، بدون اینکه آسیب جدی به SEO سایت شما وارد شود.
حل مشکل Duplicate Content با استفاده از فایل htaccess.
مشکلات Duplicate Content یا «محتوای تکراری»، یکی از بزرگترین مشکلاتی هستند، که مدیر یک سایت، میتواند با آنها دست و پنجه نرم کند. در حقیقت خطای Duplicate Content، به این دلیل از طرف گوگل معرفی شد که مدیران سایتها اقدام به انتشار محتوای تکراری در وبسایت خود نکنند. در گذشته دیده میشد که گروهی از کاربران برای اینکه بتوانند در یک عبارت کلیدی به رتبه بالایی در صفحه سرچ گوگل دست پیدا کنند، اقدام به انتشار محتواهایی تکراری در سایت خود مینمودند و این مسئله موجب میشد که به ناحق بتوانند در صدر نتایج جستجوی گوگل جای پیدا کنند.
برای مثال، سایتی که مایل بود در عبارت کلیدی «خرید هاست و دامنه» به رتبه خوبی دست پیدا کند، چندین محتوا با این عبارت کلیدی اما با متنی بسیار مشابه به یکدیگر در سایت خود قرار میداد و بهسبب هوشمند نبودن رباتهای گوگل در آن زمان، میتوانست رتیه بالاتری نسبت به رقبای خود پیدا کند.
با رشد اکوسیستم گوگل و روی کار آمدن خطای Duplicate Content و سختگیری شدید گوگل مبنی بر کاهش رتبه سایتهایی که از محتوای تکراری در سایت خود استفاده میکردند، روش محتوای تکراری برای ارتقا رتبه سایت در موتور جستجوی گوگل کنار گذاشته شد و سایتهایی که از این روش استفاده کرده بودند، نزول رتبه بسیار زیادی را تجربه کردند! همین مسئله موجب شده که خطای Duplicate Content، به عنوان یکی از مهمترین مسائل در زمان بهینهسازی سایت برای موتور جستجوی گوگل محسوب شود. در این بخش، به سراغ دو مورد از رایجترین دلایل بروز خطای Duplicate Content میرویم و از طریق فایل htaccess. این مشکلات را برطرف میکنیم.
خطای Duplicate Content برای فراخوانی سایت از طریق پیشوند www و بدون آن
یکی از رایجترین دلایل بروز خطای Duplicate Content، به استفاده یا عدم استفاده از پیشوند www در ابتدای آدرس دامنه سایت باز میگردد. کلیه صفحات وب از هر دو طریق قابل دسترسی هستند و این مسئله موجب میشود که رباتهای خزنده گوگل (Crawlers)، از هر دو مسیر اقدام به بررسی سایت شما نمایند. این وظیفه مدیر سایت است که تعیین کند، فراخوانی سایت از کدام روش در دسترس باشد.
برای مثال، صفحه اصلی سایت abc.com، از هر دو آدرس زیر قابل دسترسی است.
https://abc.com https://www.abc.com
اینکه سایت شما از طریق کدام روش در دسترس باشد، مبنی بر سیاست شماست. تا همین چندین سال پیش، استفاده از پیشوند www، یکی از بزرگترین نشانههای دهکده جهانی بود و بارها در تبلیغات شرکتهای مختلف یا بر روی بیلبوردها میتوانستید پیشوند www را قبل از آدرس هر سایت ببینید. امروزه بسیار کمتر از قبل این مورد دیده میشود و کاربران ترجیح میدهند که تنها از پروتکل امنیتی خود در کنار آدرس دامنه و پسوند دامنه استفاده کنند. با این حال، ما هر دو روش را در ادامه بیان میکنیم.
روش اول: در این روش، ما مایل هستیم که سایت ما بدون استفاده از پیشوند www بارگذاری شود و چنانچه کاربری آدرس سایت ما را با پیشوند www وارد کرد، بهشکل خودکار به مسیر مدنظر ما (یعنی آدرس بدون پیشوند) ریدایرکت شود. این کار موجب میشود که رباتهای گوگل هم مسیر درست را پیدا کنند و دچار خطای Duplicate Content نشویم.
برای این کار، لازم است که رشته کد زیر را به فایل htaccess. سایت خود اضافه کنیم.
# patch code for duplicate content RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.abc\.com$ RewriteRule ^/?$ "http\:\/\/abc\.com\/" [R=301,L]
با اضافه کردن این رشته کد به فایل htaccess. سایت خود، میتوانیم کاری کنیم که تمامی آدرسهایی که با پیشوند www ایندکس شدهاند، به آدرس مدنظر ما برای دسترسی صحیح به سایت ریدایرکت شوند. با این کار از روبهرو شدن با خطای Duplicate Content جلوگیری کردهایم و آدرس وبسایت ما هم کوتاهتر شده است.
ما در نت افراز بلاگ، پیشنهاد میکنیم که از روش بالا برای رفع خطای Duplicate Content استفاده کنید، اما اگر مایل هستید که سایت شما با استفاده از پیشوند www بارگذاری شده و تمامی صفحات سایت شما با این پیشوند ایندکس شوند، میتوانید از روش دوم در سایت خود استفاده کنید.
روش دوم: در این روش کلیه لینکهای سایت شما با پیشوند www فراخوانی و بارگذاری میشوند و چنانچه کاربری بدون استفاده از این پیشوند، اقدام به وارد کردن آدرس سایت شما نماید، بهصورت خودکار از طریق فایل htaccess. به مسیر مدنظر خود با پیشوند www ریدایرکت خواهد شد.
# patch code for duplicate content RewriteEngine On RewriteCond %{HTTP_HOST} !^www.abc.com$ [NC] RewriteRule ^(.*)$ http://www.abc.com/$1 [L,R=301]
توجه داشته باشید که در هر دو رشته کد بالا، باید عبارت abc را به نام دامنه خودتان تغییر دهید. ما در این نوشته از دامنه abc.com به عنوان دامنه فرضی خودمان استفاده میکنیم.
همچنین حتما به خاطر داشته باشید که اگر برای پسوند دامنه خود از پسوند دیگری غیر از com استفاده میکنید (مانند ir، net و…)، آن را با پسوند com که در مثالهای بالا مورد استفاده قرار گرفتهاست؛ جایگزین نمایید.
ریدایرکت http به https با استفاده از فایل htaccess.
یکی دیگر از کاربردهای بسیار مفید فایل htaccess، در زمان انتقال سایت از پروتکل http به htps است. امروزه استفاده از گواهینامههای SSL تنها یک پیشنهاد به مدیران سایتها نیست، بلکه یک الزام است! دیگر کمتر سایتی را میتوان دید که بهدلیل عدم استفاده از گواهینمامه SSL، از پروتکل https استفاده ننماید.
لازم است اشاره کنیم که، انتقال سرویسهای سایت بر روی پروتکل https همواره بسیار ساده نیست. در برخی موارد دیده میشود که بخشی از محتوای یک صفحه وب، همچون یک اسکریپت CSS یا حتی یک عکس، بهدرستی از طریق پروتکل https بارگذاری نمیشود و این میتواند کلیه زحمتهای شما را هدر دهد. اصطلاحا به این خطا “Mixed Content” گفته میشود و یکی از رایجترین خطاها در زمان بررسی یک صفحه وب از طریق ابزار “Inspect” در مرورگرهاست.
این خطا به شکل بالا در سربرگ “Console” مرورگر به نمایش در میآید و میتواند بسیار آزاردهنده باشد. مشکل اینجاست که با وجود خطای Mixed Content، آیکون قفل معروف https در مروگر نمایش داده میشود ولی بخشی از محتوای صفحه شما با https بارگذاری میشود که تا زمانی که به ابزار Inspect مراجعه نکنید، متوجه آن نخواهید شد. این مسئله موجب میشود که آن صفحه از سایت شما نتواند امتیاز SEO لازم را به دست آورد و با وجود تلاشهای بسیار شما، جایگاه مناسبی را در صفحه سرچ گوگل به دست نیاورد.
اگر شما بهعنوان یک مدیر سایت، از خدمات سرویسهای میزبانی اشتراکی، همچون کلیه سرویسهای هاستینگ نت افراز استفاده میکنید، شاید هیچگاه با این خطا روبهرو نشوید، چراکه قسمت عمده این تنظیمات در سرور اصلی سرویس میزبانی شما انجام شده و نیازی به اقدامات فنی سطح بالا از سمت شما نیست.
با این وجود، ما در این بخش بررسی میکنیم که چطور میتوان خطای Mixed Content را با استفاده از فایل htaccess. برطرف نمود.
برای این کار، رشته کدی آماده کردهایم که کلیه اجزای یک صفحه وب را مجبور به بارگذاری از طریق پروتکل https مینماید. به این کار اصطلاحا “Force https Redirection” گفته میشود.
چنانچه با خطای Mixed Content مواجه هستید، تنها کافیست که رشته کد زیر را در ابتدای فایل htaccess. سایت خود قرار دهید.
# force https redirection RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://abc.com/$1 [R=301,L,NE] Header always set Content-Security-Policy "upgrade-insecure-requests;"
رشته کد بالا موجب میشود که کلیه اجزای سایت شما از طریق پروتکل https بارگذاری شوند و از همین رو دیگر با خطای Mixed Content در سربرگ کنسول مواجه نخواهید شد.
رشته کد بالا را میتوان به شکل دیگری نیز ارائه کرد که در آن نیازی به وارد کردن آدرس سایت خود نخواهید داشت. این رشته کد به شکل زیر است.
# force https redirection RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] Header always set Content-Security-Policy "upgrade-insecure-requests;"
همانطور که روشن است، تفاوتی میان این دو رشته کد وجود ندارد و میتوانید از هر کدام از موارد گفته شده استفاده نمایید.
چنانچه پیش از این با خطای Mixed Content مواجه بودهاید، با استفاده از رشته کدهای بالا در فایل htaccess. میتوانید متوجه پیشرفت قابل توجهی در عملکرد سئوی سایت خود شوید.
سخن پایانی
در این مقاله از نت افراز بلاگ، به سراغ بررسی فایل htaccess. رفتیم و علاوه بر آشنایی مختصر با سینتکس قابل استفاده در این فایل، به بررسی کاربردیترین کدهای قابل استفاده در آن پرداختیم. شاید بتوان با آشنایی بیشتر با سینتکس این فایل، مشکلات بسیار پیچیدهای را تنها با چند خط کد حل کرد!
از تغییر دامنه سایت بدون آسیب جدی به SEO سایت گرفته تا برطرف کردن خطاهای Duplicate Content و Mixed Content، همگی از طریق فایل htaccess قابل اجرا هستند.
نهایتا امیدواریم که از این نوشته بهره کافی را برده باشید. هدف ما در تیم نت افراز، پاسخگویی به سوالات و برطرف کردن مشکلات اولیه شماست. پس چنانچه سوالی در رابطه با این نوشته دارید، از طریق بخش ارسال نظرات در پایین این برگه با ما در ارتباط باشید.
موفقیت همراه راهتان باد.
https://www.netafraz.com/blog/how-to-redirect-site-urls-by-htaccess-file/