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

اگر می خواهید در مورد HTTP و HTTPS اطلاعات بیشتر داشته باشید و با تفاوت ها آن آشنا شوید پیشنهاد میکنم مقاله پروتکل https چیست و چه تفاوتی با http دارد؟ در وبلاگ ایران سرور را مطالعه نمایید.
گام اول: انتخاب و نصب گواهینامه SSL/TLS
بسیاری از شرکتهای میزبانی وب، گواهینامههای SSL رایگان را به همراه بستههای میزبانی خود ارائه میدهند. شما میتوانید با یک کلیک ساده در بخش تنظیمات یا ابزارهای سایت، این گواهینامه را فعال کنید. اگر شرکت میزبانی شما گواهینامه SSL یا TLS رایگان ارائه نمیدهد، شاید زمان آن رسیده باشد که به دنبال یک شرکت میزبانی جدید باشید. همچنین میتوانید از گزینههای رایگان دیگری مانند Free SSL و Let’s Encrypt استفاده کنید.
در این زمینه، ایران سرور مجموعهای کامل از ابزارها را در بخش امنیت پنل مدیریت خود ارائه داده که به شما امکان میدهد مراحل اولیه تنظیم گواهی ssl را فقط با چند کلیک انجام دهید. همچنین این فرایند را میتوانید بهطور کامل به کارشناسان ایران سرور بسپارید تا صفر تا صد نصب گواهی و ریدایرکت دامنه را برای شما فعال کند.
مطلب مرتبط: پروتکل تلنت چیست؟ بین تلنت و SSH کدام گزینه مناسب تری برای ماست؟
گام دوم: آموزش ریدایرکت کردن http به https
اکنون باتوجه به سطح دسترسی و تخصصتان میتوانید از طریق یکی از روشهای زیر برای ریدایرکت کردن اقدام کنید. در ادامه، هر یک از این روشها را بررسی خواهیم کرد:
- ریدایرکت http به Https در وردپرس با افزونه
- ریدایرکت http به Https در سیپنل یا دایرکت ادمین از طریق فایل htaccess
- ریدایرکت http به Https در وردپرس بدون افزونه
۱. ریدایرکت http به Https در وردپرس با افزونه؛ برای مبتدیان
برای کاربران مبتدی، روش سادهای برای فعالسازی HTTPS وجود دارد. ابتدا باید افزونه Really Simple SSL را نصب و فعال کنید. برای اطلاعات بیشتر در مورد نصب افزونههای وردپرس، میتوانید راهنمای گامبهگام آموزش نصب افزونه وردپرس به ۳ روش ساده و کاربردی در وبلاگ ایرانسرور را مطالعه کنید.
پس از فعالسازی، به بخش settings» SSL مراجعه کنید. افزونه بهطور خودکار گواهی SSL شما را تشخیص داده و سایت وردپرسی شما را برای استفاده از HTTPS تنظیم میکند.

افزونه تمامی مراحل را بهصورت خودکار انجام میدهد، از جمله رفع خطای mixed content. عملکرد افزونه به شرح زیر است:
- بررسی گواهی SSL
- تنظیم وردپرس برای استفاده از https در آدرسها
- ایجاد تغییر مسیر از HTTP به HTTPS
- جستجو و رفع آدرسهای درون محتوای سایت که همچنان از منابع ناامن HTTP بارگذاری میشوند
توجه داشته باشید که افزونه برای رفع خطاهای mixed content از تکنیک بافرگذاری خروجی استفاده میکند. این قضیه ممکن است بر عملکرد سایت تاثیر منفی بگذارد، زیرا محتوا در حین بارگذاری صفحه جایگزین میشود. البته این تأثیر فقط در بارگذاری اولیه صفحه است و درصورت استفاده از افزونه کش، بسیار ناچیز خواهد بود.
مطلب مرتبط: آموزش دریافت گواهی ssl رایگان در تمامی کنترل پنلها
۲. ریدایرکت کردن http به https ازطریق فایل htaccess
اگر کار با فایل htaccess را برای ویرایش انتخاب کنید، کارتان در ریدایرکت کردن http به https در cpanel و دایرکت ادمین ساده خواهد بود (فایل htaccess کجاست؟). کافیاست در هر یک از این دو پنل، به پوشه htaccess دست پیدا کرده و کدی که در ادامه معرفی میکنیم، در آن جایگذاری کنید. ما در ادامه، نحوه ریدایرکت کردن http به https در سی پنل را بررسی میکنیم اما انجام آن در دایرکت ادمین نیز بههمین ترتیب است . برای آشنایی با نحوه ورود به سیپنل و مدیریت وبسایت خود، میتوانید به مقاله “ورود به سی پنل در وبلاگ ایرانسرور” مراجعه کنید.
قبل از هر کاری، حتما از سایت خود نسخه پشتیبان بگیرید تا در صورت بروز مشکل بتوانید سایت را به حالت قبل برگردانید.
برای دسترسی به فایل .htaccess باید این مراحل را طی کنید:
۱. وارد پنل کنترل خود (cPanel) شوید.
۲. در قسمت Files روی گزینه File Manager کلیک کنید.

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

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


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

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

۸. ممکن است یک پنجره باز شود که از شما درباره کدگذاری میپرسد. روی 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 برای بارگذاری استفاده میکنند. در این حالت، نماد قفل امن در نوار آدرس وبسایت شما نمایش داده نخواهد شد.

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

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

اغلب آدرسهای URL مربوط به تصاویر، فریمهای داخلی (iframe) و گالری تصاویر هستند، در حالی که برخی دیگر اسکریپتها و استایلشیتهایی هستند که توسط افزونهها و پوستههای وردپرس شما بارگذاری میشوند.
بیشتر بخوانید: انتقال سایت وردپرس از لوکال به لوکال دیگر به صورت جامع و مرحله به مرحله
رفع خطای mixed content
اغلب آدرسهای نادرست مربوط به تصاویر، فایلها و سایر دادههای ذخیره شده در پایگاه داده وردپرس شما هستند. شما باید تمام موارد ذکر شده از آدرس وبسایت قدیمی خود را در پایگاه داده که با http شروع میشوند، پیدا کرده و آنها را با آدرس جدید وبسایت خود که با https شروع میشود. جایگزین کنید. برای این کار بهصورت زیر پیش روید:
قبل از انجام هر تغییری، از پایگاه داده وردپرس خود نسخه پشتیبان تهیه کنید.
۱. افزونه Search & Replace Everything را نصب و فعال کنید.
۲. پس از فعالسازی، باید به صفحه ابزارها » WP Search & Replace مراجعه کنید. در قسمت Search باید آدرس وبسایت خود را با http وارد کنید. سپس، آدرس وبسایت خود را با https در قسمت Replace وارد کنید.

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

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

۵. افزونه اکنون پایگاه داده وردپرس شما را برای آدرسهای شروع شده با http جستجو کرده و آنها را با آدرسهای امن https جایگزین میکند. ممکن است باتوجه به اندازه پایگاه داده وردپرس شما، این کار زمانبر باشد.
درصورتیکه مراحل بالا را انجام داده اما همچنان خطا به قوتش باقی مانده بود، احتمالا مشکل از قالب یا افزونه شما باشد. برای راهنمایی بیشتر میتوانید مشکل خود را در بخش نظرات بهطور دقیقتر با ما درمیان بگذارید.
مرحله سوم: اقدامات پایانی را انجام دهید
پس از انتقال سایت وردپرس خود از پروتکل HTTP به HTTPS، زمان آن رسیده است که یک چکاب نهایی انجام دهید.
- تغییر آدرس اینترنتی در ابزارهای گوگل: آدرس اینترنتی خود را در گوگل آنالیتیکس، ادسنس و کنسول جستجو تغییر دهید.
- تنظیم اسکریپتها، CDNها و سایر تنظیمات خارجی: اسکریپتها، شبکههای تحویل محتوا (CDN) و سایر تنظیمات خارجی را که هنوز از آدرس اینترنتی قدیمی استفاده میکنند، تنظیم کنید.
- هرچند ریدایرکت بهطور خودکار انجام میشود، بااین حال برای جلب اعتماد بیشتر بهتر است در قسمتهایی که لینک http قابل مشاهده است، آن را به https تغییر دهید.
خرید cdn ایرانسرور، همان چیزی است که برای بهبود عملکرد سایت به آن نیاز دارید. این سرویس سایت شما را همیشه در دسترس نگه میدارد و کاربران میتوانند با سرعت بالا به صفحه موردنظرشان دسترسی داشته باشند. همچنین افزایش امنیت و بهبود سئوی سایت از دیگر مزایای CDN ایرانسرور است.
جمع بندی
ریدایرکت کردن http به https در cpanel و دایرکت ادمین خیال شما را از امنیت اطلاعات کاربران و وبسایتتان راحت میکند. در این مقاله، نحوه ریدایرکت http به https را به سه طریق دستی، با افزونه و ازطریق فایل htaccess بررسی کردیم. استفاده از افزونه روش سادهتر مخصوص مبتدیان بوده و دو روش دیگر نیاز به تجربه و دانش وردپرس دارد. در مسیر این تغییرات، اگر نیاز به راهنمایی بیشتر دارید، کارشناسان ایران سرور مشتاق راهنمایی شما هستند. کافیاست سوالتان را انتهای همین مقاله بنویسید تا راهنماییتان کنیم.
سوالاتی که شما می پرسید
۱. آیا ریدایرکت HTTP به HTTPS بر روی سئو سایت تاثیر منفی میگذارد؟
اگر ریدایرکت بهدرستی انجام شود، نهتنها تأثیر منفی ندارد بلکه به بهبود سئو سایت نیز کمک میکند. ریدایرکت ۳۰۱ که بهترین نوع ریدایرکت برای این منظور است، به موتورهای جستجو میگوید که محتوای صفحه به آدرس جدید منتقل شده است.
۲. آیا ریدایرکت HTTP به HTTPS باعث کاهش سرعت سایت میشود؟
در حالت کلی، ریدایرکت HTTP به HTTPS بهتنهایی باعث کاهش سرعت سایت نمیشود. اگر سایت شما از منابع خارجی مانند تصاویر یا اسکریپتها حاوی HTTP استفاده میکنند، ممکن است با مشکل محتوای مخلوط (Mixed Content) مواجه شوید که باعث کاهش سرعت سایت میشود. برای رفع این مشکل، باید آدرسهای این منابع را نیز به HTTPS تغییر دهید.
۳. چه تفاوتهایی بین ریدایرکت دائمی و موقتی وجود دارد؟
- ریدایرکت ۳۰۱ (دائمی): برای انتقال دائمی یک صفحه به آدرس جدید استفاده میشود.
- ریدایرکت ۳۰۲ (موقتی): برای انتقال موقت یک صفحه به کار میرود.
منابع:
سلام. ممنون از مطالب خوبتون. لطفا بفرمایید چطور میشه چنین لینکی رو ریدایرکت کرد :
course?category=10
در واقع مشکل اون علامت سوال هست.
سلام و ممنون از توجهتون. برای ریدایرکت کردن لینکی مثل `course?category=10` که شامل کوئری پارامتر (علامت سؤال) هست، نمیتونید از روش معمول `.htaccess` با `RewriteRule` استفاده کنید، چون `RewriteRule` به مسیر قبل از `?` نگاه میکنه. برای این نوع ریدایرکت باید از `RewriteCond` استفاده کنید.
مثال کدی که میتونید در `.htaccess` قرار بدید به این صورت هست:
RewriteEngine OnRewriteCond %{QUERY_STRING} ^category=10$
RewriteRule ^course$ /new-url [R=301,L]
در اینجا شرط بررسی میکنه که کوئری برابر `category=10` باشه و در صورت تطابق، به مسیر جدید ریدایرکت انجام میشه. مسیر جدید رو جایگزین `/new-url` کنید.
سلام
من یه سیستم فروشگاه دهی دارم که نزدیک ۲۰۰۰ تا سابدامنه داره و سابدامنه ها بصورت پویا و مجازی ایجاد میشه (توی هاست نیست)
میخوام این سابدامنه ها از www به http و همچنین از https به http ریدایرکت بشن
و دامنه اصلی از www به https و همچنین از http به https ریدایرکت بشه
سایت هم وردپرسی نیست و با لاراول کدنویسی شده
اگه ۴ تا کد مجزا هم بدید که هرکدومش یکی از ریدایرکت ها رو انجام بده بازم عالیه
با تشکر
سلام
برای هر ریدایرکت میتونید از دستورهای جداگانه در .htaccess استفاده کنید. چون نیازتون خاص و پیچیدهست، پیشنهاد میکنیم حتماً مقاله کاملتری در این زمینه تهیه کنیم.
پیشنهاد میشه برای رفع مشکلتون تیکت برای واحد پشتیبانی ثبت کنید تا موضوع براتون دقیقتر بررسی بشه.
سلام
از مطلب جامعی که ارائه کردید خیلی ممنونم
یه کد ریدایرکتی میخواستم که توی این مثال ها نتونستم پیدا کنم.
در واقع لینک های من به این شکله:
لینک قدیم:
http://subdomin.mydomin.com/product/123/name
لینک جدید:
http://subdomin.mydomin.com/subproduct/123/456/name
(منظور از ۱۲۳ آیدی محصوله و ۴۵۶ هم آیدی subdomin هست و یه عدد ثابته)
در واقع توی لینک جدید product به subproduct تغییر کرده و توی لینک جدید عدد ثابت آیدی سابدامنه اضافه شده)
لطفا بفرمایید که با چه کدی لینک قدیم رو به لینک جدید ریدایرکت کنم؟
بازم از راهنماییتون سپاسگذارم
سلام آقا محمد، ممنون از شما
اگر از وردپرس استفاده میکنید از افزونه ۳۰۱ redirect میتونید استفاده کنید
از طریق htaccess هم امکان راه اندای چنین چیزی هست
RewriteEngine On RewriteCond %{HTTP_HOST} ^olddomain\.ir$ [OR] RewriteCond %{HTTP_HOST} ^www\.olddomain\.ir$ RewriteRule (.*)$ https://newdomain.com/$1 [R=301,L]
سلام برای ریدایرکت http به https به جز اضافه کردن کد گفته شده در بالا … برای سئو چه اقداماتی باید انجام داد؟
باسلام
در خصوص سئو نیاز به انجام مورد خاصی نمیباشد.
سلام وقتتون بخیر من هر کدی داخل فایل httaccess قرار میدم کار نمیکنه
اون کد درسته و داخل یه سایت دیگه تست کردم و ریدارکت شد ولی داخل سایت خودم نه
سایت خودم سرور اختصاصی اروپا داره و همه چیش با خودم بوده
تنظیماتی خاص یا کاری باید میکردم که نکردم و الان داره فایل httaccess نادیده میگیره؟؟؟
باسلام
این مورد بسته به نوع وبسرور شما میتواند شرایط مختلفی داشته باشد. پیشنهاد میشود بصورت تیکت با پشتیبانی هاست در ارتباط باشید.