ریدایرکت کردن http به https در cpanel و دایرکت ادمین به سایتتان یک زره محکم می‌بندد تا از اطلاعات آن محافظت کند. اگر به فکر جلب اعتماد مخاطب و رعایت استانداردهای گوگل هستید، با خواندن این مقاله خودتان می‌توانید ریش و قیچی ریدایرکت کردن را به‌دست بگیرید. در آموزش ریدایرکت کردن http به https، در سه گام زیر و با سه روش به شما می‌گوییم چگونه سایتتان را از HTTP به HTTPS منتقل کنید:

ریدایرکت کردن http به https

اگر می خواهید در مورد HTTP و HTTPS اطلاعات بیشتر داشته باشید و با تفاوت ها آن آشنا شوید پیشنهاد می‌کنم مقاله پروتکل https چیست و چه تفاوتی با http دارد؟ در وبلاگ ایران سرور را مطالعه نمایید.

گام اول: انتخاب و نصب گواهینامه SSL/TLS

بسیاری از شرکت‌های میزبانی وب، گواهینامه‌های SSL رایگان را به همراه بسته‌های میزبانی خود ارائه می‌دهند. شما می‌توانید با یک کلیک ساده در بخش تنظیمات یا ابزارهای سایت، این گواهینامه را فعال کنید. اگر شرکت میزبانی شما گواهینامه SSL یا TLS رایگان ارائه نمی‌دهد، شاید زمان آن رسیده باشد که به دنبال یک شرکت میزبانی جدید باشید. همچنین می‌توانید از گزینه‌های رایگان دیگری مانند Free SSL و Let’s Encrypt استفاده کنید.

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

مطلب مرتبط: پروتکل تلنت چیست؟ بین تلنت و SSH کدام گزینه مناسب تری برای ماست؟

گام دوم: آموزش ریدایرکت کردن http به https

اکنون باتوجه به سطح دسترسی و تخصصتان می‌توانید از طریق یکی از روش‌های زیر برای ریدایرکت کردن اقدام کنید. در ادامه، هر یک از این روش‌ها را بررسی خواهیم کرد:

۱. ریدایرکت http به Https در وردپرس با افزونه؛ برای مبتدیان

برای کاربران مبتدی، روش ساده‌ای برای فعال‌سازی HTTPS وجود دارد. ابتدا باید افزونه‌ Really Simple SSL را نصب و فعال کنید. برای اطلاعات بیشتر در مورد نصب افزونه‌های وردپرس، می‌توانید راهنمای گام‌به‌گام آموزش نصب افزونه وردپرس به ۳ روش ساده و کاربردی در وبلاگ ایران‌سرور را مطالعه کنید.

پس از فعال‌سازی، به بخش settings» SSL مراجعه کنید. افزونه به‌طور خودکار گواهی SSL شما را تشخیص داده و سایت وردپرسی شما را برای استفاده از HTTPS تنظیم می‌کند.

Really Simple SSL

افزونه تمامی مراحل را به‌صورت خودکار انجام می‌دهد، از جمله رفع خطای mixed content. عملکرد افزونه به شرح زیر است:

توجه داشته باشید که افزونه برای رفع خطاهای mixed content از تکنیک بافرگذاری خروجی استفاده می‌کند. این قضیه ممکن است بر عملکرد سایت تاثیر منفی بگذارد، زیرا محتوا در حین بارگذاری صفحه جایگزین می‌شود. البته این تأثیر فقط در بارگذاری اولیه صفحه است و درصورت استفاده از افزونه‌ کش، بسیار ناچیز خواهد بود.

مطلب مرتبط: آموزش دریافت گواهی ssl رایگان در تمامی کنترل پنل‌ها

۲. ریدایرکت کردن http به https ازطریق فایل htaccess

اگر کار با فایل htaccess را برای ویرایش انتخاب کنید، کارتان در ریدایرکت کردن http به https در cpanel و دایرکت ادمین ساده خواهد بود (فایل htaccess کجاست؟). کافی‌است در هر یک از این دو پنل، به پوشه htaccess دست پیدا کرده و کدی که در ادامه معرفی می‌کنیم، در آن جای‌گذاری کنید. ما در ادامه، نحوه ریدایرکت کردن http به https در سی پنل را بررسی می‌کنیم اما انجام آن در دایرکت ادمین نیز به‌همین ترتیب است . برای آشنایی با نحوه ورود به سی‌پنل و مدیریت وب‌سایت خود، می‌توانید به مقاله “ورود به سی پنل در وبلاگ ایران‌سرور” مراجعه کنید.

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

برای دسترسی به فایل .htaccess باید این مراحل را طی کنید:

۱. وارد پنل کنترل خود (cPanel) شوید.

۲. در قسمت Files روی گزینه File Manager کلیک کنید.

File manager در سی پنل

۳. در بخش Domains دامنه‌ موردنظرتان را انتخاب کنید.

انتخاب دامنه در سی پنل

۴. گزینه Show hidden files dotfiles را از بخش Setting فعال کنید.

گزینه Show hidden files dotfiles

۵. روی دکمه go کلیک کنید.

۶. حالا فایل .htaccess را پیدا و روی آن راست کلیک کنید. اگر فایل htaccess را پیدا نکردید، کافی‌است روی گزینه +File بزنید و یک فایل جدید با نام htaccess بسازید.

ایجاد پوشه htaccess

۷. برای باز کردن فایل، روی آن راست کلیک کرده و گزینه Edit را بزنید.

ویرایش فایل htaccess

۸. ممکن است یک پنجره باز شود که از شما درباره کدگذاری می‌پرسد. روی Edit کلیک کنید.

ویرایش اطلاعات

۹. در این مرحله، کافی‌است کد زیر را در فایل قرار دهید و تغییرات لازم را در فایل اعمال کنید. سپس فایل را ذخیره کنید.

Redirect http to https#

RewriteCond %{http:X-Forwarded-Proto} =https

RewriteRule ^(.*)$ http://%{http_HOST}%{REQUEST_URI} [L,R=301]

۱۰. سایت خود را تست کنید تا مطمئن شوید همه چیز درست کار می‌کند. اگر مشکلی پیش آمد، سایت را به نسخه پشتیبان برگردانید و دوباره امتحان کنید. وقتی کارتان تمام شد، گزینه Save را زده و پنجره ببندید.
همچنین چند حالت برای ریدایرکت کردن http به https در دایرکت ادمین و سی‌پنل وجود دارد:

برای هدایت تمام صفحات حاوی http:// به Https:// کد زیر را وارد کنید:

RewriteEngine On
 /RewriteBase
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule .* https://example.com%{REQUEST_URI} [R=301,L]


۳.هدایت کل ترافیک وب‌سایت

اگر در حال حاضر کد خاصی در فایل .htaccess خود دارید، کد زیر را به آن اضافه کنید. به جای yourdomain.com حتما نام دامنه واقعی خود را بنویسید.

RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ 

https://yourdomain.com/$1 [R,L]

این کد بررسی می‌کند آیا ترافیک از طریق پورت ۸۰ (پورت پیشفرض HTTP) وارد می‌شود یا خیر. درصورتی‌که ترافیک از پورت ۸۰ باشد، کل آدرس به نسخه HTTPS سایت شما هدایت می‌شود.

۴. هدایت یک دامنه‌ی خاص

می‌خواهید فقط یک دامنه خاص را به HTTPS هدایت کنید؟ کد زیر را به .htaccess اضافه کنید:

RewriteEngine On RewriteCond %{HTTP_HOST} ^yourdomain\.com [NC] RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.yourdomain.com/$1

[R,L]

این کد با تمامی زیرمجموعه‌های yourdomain.com (با و بدون www) کار می‌کند.

۵. هدایت یک پوشه‌ خاص

می‌خواهید فقط یک پوشه‌ خاص را به HTTPS هدایت کنید؟ کد زیر را به .htaccess اضافه کنید:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} folder
RewriteRule ^(.*)$ https://yourdomain.com/folder/$1 [R,L]

به جای folder نام پوشه‌ی موردنظر خود را بنویسید.

۶. ریدایرکت تمام صفحات http به https به‌غیر از یک صفحه

برای ریدایرکت کل سایت به Https:// به‌جز یک صفحه (مانند برخی از صفحات HTML) از کد زیر استفاده کنید:

RewriteEngine On
 /RewriteBase
RewriteCond %{HTTPS} !=on
$RewriteCond %{HTTP_HOST} ^example\.com
$RewriteCond %{REQUEST_URI} !^/some_http_page\.html
RewriteRule .* https://example.com%{REQUEST_URI} [R=301,L]

۷. ریدایرکت http به https به‌غیر از یک دایرکتوری یا  فولدر

<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} on
RewriteRule ^%{HTTP_HOST}/demo(.*) http://%{HTTP_HOST}/demo/$1 [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

در مثال بالا نام دایرکتوری مورد نظر را جایگزین demo کنید.

نحوه ریدایرکت http به https در وردپرس بدون افزونه

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

بیشتر بخوانید: وردپرس چیست؟ چه کاربردی دارد و چرا با ورد پرس سایت بسازیم؟

مرحله اول: تغییر آدرس وردپرس در تنظیمات عمومی

۱. به بخش تنظیمات > عمومی در پیشخوان وردپرس بروید.

۲. در قسمت‌های آدرس وردپرس (WordPress Address) و آدرس سایت (Site Address)، آدرس فعلی را با نسخه HTTPS آن جایگزین کنید.

۳. روی دکمه «ذخیره تغییرات» کلیک کنید.

جایگزین کردن آدرس سایت در بخش تنظیمات وردپرس

۴. پس از ذخیره تنظیمات، از وردپرس خارج شده و مجدداً وارد شوید.

مرحله دوم: ایجاد ریدایرکت از HTTP به HTTPS با استفاده از فایل .htaccess

در مرحله بعد باید ریدایرکت‌ها را از HTTP به HTTPS تنظیم کنید. برای این کار باید کد زیر را به فایل .htaccess اضافه کنید:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
:RewriteRule ^(.*)$ https
//%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

اگر می خواهید SSL و HTTPS را در ناحیه مدیریت وردپرس یا صفحات ورود خود اعمال کنید، باید SSL را در فایل wp-config.php پیکربندی نمایید.

کد زیر را در بالای خط “That’s all, stop editing!” در فایل wp-config.php خود اضافه کنید:

;define('FORCE_SSL_ADMIN', true)

این خط به وردپرس اجازه می دهد تا SSL / HTTPS را در ناحیه مدیریت وردپرس اعمال کند.

تا اینجا موفق شوید کار SSL و انتقال http به Https را یک‌سره کنید. البته هنوز یک کار کوچک دیگر باقی مانده است و آن احتمال مواجه شدن با خطای  mixed content است.

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

خطای mixed content در مرورگر

توجه: بسیاری از مرورگرهای مدرن به طور خودکار اسکریپت‌ها و منابع ناامن را مسدود می‌کنند.

ممکن است نماد قفل در نوار آدرس مرورگر نمایش داده شود، اما همراه با یک هشدار باشد.

خطای mixed content در مرورگر  

برای شناسایی محتوایی که از طریق پروتکل ناامن بارگذاری می‌شود، می‌توانید از (Inspect) گوگل استفاده کنید. خطای mixed content به عنوان یک هشدار در کنسول نمایش داده می‌شود و جزئیات هر مورد محتوای مخلوط را ارائه می‌دهد.

خطای mixed content در inspect گوگل

اغلب آدرس‌های URL مربوط به تصاویر، فریم‌های داخلی (iframe) و گالری تصاویر هستند، در حالی که برخی دیگر اسکریپت‌ها و استایل‌شیت‌هایی هستند که توسط افزونه‌ها و پوسته‌های وردپرس شما بارگذاری می‌شوند.

بیشتر بخوانید: انتقال سایت وردپرس از لوکال به لوکال دیگر به صورت جامع و مرحله به مرحله

رفع خطای mixed content

اغلب آدرس‌های نادرست مربوط به تصاویر، فایل‌ها و سایر داده‌های ذخیره شده در پایگاه داده وردپرس شما هستند. شما باید تمام موارد ذکر شده از آدرس وب‌سایت قدیمی خود را در پایگاه داده که با http شروع می‌شوند، پیدا کرده و آن‌ها را با آدرس جدید وبسایت خود که با https شروع می‌شود. جایگزین کنید. برای این کار به‌صورت زیر پیش‌ روید:

قبل از انجام هر تغییری، از پایگاه داده وردپرس خود نسخه پشتیبان تهیه کنید.

۱. افزونه Search & Replace Everything را نصب و فعال کنید.

۲. پس از فعال‌سازی، باید به صفحه ابزارها » WP Search & Replace مراجعه کنید. در قسمت Search باید آدرس وبسایت خود را با http وارد کنید. سپس، آدرس وب‌سایت خود را با https در قسمت Replace وارد کنید.

افزونه Search & Replace Everything

۳. در زیر آن، تمام جداول پایگاه داده وردپرس شما را مشاهده خواهید کرد. برای انجام یک بررسی کامل، باید همه آن‌ها را انتخاب کنید.

افزونه Search & Replace Everything

۴. سپس روی دکمه Preview Search & Replace کلیک کنید تا تمام تغییراتی که افزونه ایجاد خواهد کرد، مشاهده کنید. در نهایت، روی دکمه Preview Search & Replace بزنید.

افزونه Search & Replace Everything برای رفع خطای Mixed Content

۵. افزونه اکنون پایگاه داده وردپرس شما را برای آدرس‌های شروع شده با http جستجو کرده و آن‌ها را با آدرس‌های امن https جایگزین می‌کند. ممکن است باتوجه به اندازه پایگاه داده وردپرس شما، این کار زمان‌بر باشد.

درصورتی‌که مراحل بالا را انجام داده اما همچنان خطا به قوتش باقی مانده بود، احتمالا مشکل از قالب یا افزونه شما باشد. برای راهنمایی بیشتر می‌توانید مشکل خود را در بخش نظرات به‌طور دقیق‌تر با ما درمیان بگذارید.

مرحله سوم: اقدامات پایانی را انجام دهید

پس از انتقال سایت وردپرس خود از پروتکل HTTP به HTTPS، زمان آن رسیده است که یک چکاب نهایی انجام دهید.

خرید cdn ایران‌سرور، همان چیزی است که برای بهبود عملکرد سایت به آن نیاز دارید. این سرویس سایت شما را همیشه در دسترس نگه‌ می‌دارد و کاربران می‌توانند با سرعت بالا به صفحه مورد‌نظرشان دسترسی داشته باشند. همچنین افزایش امنیت و بهبود سئوی سایت از دیگر مزایای CDN ایران‌سرور است.

جمع بندی

ریدایرکت کردن http به https در cpanel و دایرکت ادمین خیال شما را از امنیت اطلاعات کاربران و وب‌سایتتان راحت می‌کند. در این مقاله، نحوه ریدایرکت http به https را به سه طریق دستی، با افزونه و ازطریق فایل htaccess بررسی کردیم. استفاده از افزونه روش ساده‌تر مخصوص مبتدیان بوده و دو روش دیگر نیاز به تجربه و دانش وردپرس دارد. در مسیر این تغییرات، اگر نیاز به راهنمایی بیشتر دارید، کارشناسان ایران سرور مشتاق راهنمایی شما هستند. کافی‌است سوالتان را انتهای همین مقاله بنویسید تا راهنمایی‌تان کنیم.

سوالاتی که شما می پرسید

۱. آیا ریدایرکت HTTP به HTTPS بر روی سئو سایت تاثیر منفی می‌گذارد؟

اگر ریدایرکت به‌درستی انجام شود، نه‌تنها تأثیر منفی ندارد بلکه به بهبود سئو سایت نیز کمک می‌کند. ریدایرکت ۳۰۱ که بهترین نوع ریدایرکت برای این منظور است، به موتورهای جستجو می‌گوید که محتوای صفحه به آدرس جدید منتقل شده است.

۲. آیا ریدایرکت HTTP به HTTPS باعث کاهش سرعت سایت می‌شود؟

در حالت کلی، ریدایرکت HTTP به HTTPS به‌تنهایی باعث کاهش سرعت سایت نمی‌شود. اگر سایت شما از منابع خارجی مانند تصاویر یا اسکریپت‌ها حاوی HTTP استفاده می‌کنند، ممکن است با مشکل محتوای مخلوط (Mixed Content) مواجه شوید که باعث کاهش سرعت سایت می‌شود. برای رفع این مشکل، باید آدرس‌های این منابع را نیز به HTTPS تغییر دهید.

۳. چه تفاوت‌هایی بین ریدایرکت دائمی و موقتی وجود دارد؟

منابع:

wpbeginner

freecodecamp

namecheap

elegantthemes

 

37 پاسخ

  1. با سلام
    از خدمات ایران سرور کاملا رضایت دارم
    و از مطالب بینظیر و تخصصی کمال تشکر و قدر دانی را دارا میباشم .

  2. بهتر نبود مطالب کمی ساده و روان تر برای کسانی که آشنایی ندارند در این مقاله توضیح داده میشد از اول شروع این مقاله کمی مرحله به مرحله جلو میرفتید یا حداقل این همه کد با توضیح چند کلمه ای زیرش باید کپی پیست بشه؟در اول کد های صفحه یا اخرش
    موقع فروش هاست و سرور فقط گفته میشه گواهی با ما …
    نمیگید این همه مراحل پیچیده داره ک با خودمونه

    1. سلام و ممنون از نظرتون
      خیلی از مقاله‌های ما در دست ویرایش هستن و به زودی با توضیحات به‌روز و کاملتری در خدمتتون خواهیم بود.
      اگر دوست داشتید به مطالب جدید ایران سرور سر بزنید

  3. سلام.
    همانطور که میدانیم کدهای زیادی با کاربرد متفاوت برای htaccess وجود دارد. آیا به راحتی میتوان کدها پشت سر هم کپی پیست کرد.
    یا روش خاصی وجود دارد؟ لطفا مثال بزنید اگر ممکن است

    1. باسلام
      بله شما میتوانید ruleها و قوانین مورد نیاز خود را در فایل htaccess درج کنید. البته این موضوع مشروط به آن است که کد‌ها و قوانین درج شده درون فایل htaccess بایکدیگر و یا با وب‌سایت تداخل نداشته باشند.

  4. سلام خسته نباشید

    میخواستم ادرس قدیمی رو به ادرس جدید منتقل کنم
    و هم ادرس قبلی دارای ssl بوده و هم ادرس جدید از چ کدی لاید استفاده کنم؟

    1. سلام و وقت بخیر، اگر می‌خواید آدرس قدیمی سایت رو به آدرس جدید منتقل کنید و هر دو دارای SSL هستن، بهترین روش استفاده از ریدایرکت ۳۰۱ دائمی هست تا هم کاربران و هم موتورهای جستجو به آدرس جدید هدایت بشن. برای این کار، در فایل `.htaccess` هاست قبلی می‌تونید از کد زیر استفاده کنید:

      RewriteEngine On
      RewriteCond %{HTTPS} on
      RewriteRule ^(.*)$ https://newdomain.com/$1 [R=301,L]

      به‌جای `newdomain.com` آدرس جدید سایت خودتون رو قرار بدید. این کار باعث انتقال دائمی ترافیک به دامنه جدید می‌شه و سئو سایت قبلی رو هم حفظ می‌کنه. مطمئن بشید گواهینامه SSL روی دامنه جدید فعال و درست نصب شده باشه.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *