اگر به دنبال ریدایرکت وب سایت از http به https هستید، این مقاله آموزشی به شما کمک می کند تا به صورت کامل و بدون وارد شدن هیچگونه ضربه ای به وبسایت این کار را انجام دهید. همانطور که در جریان هستید گوگل وبسایت ها را جهت انتقال به https تحت فشار قرار داده است :
With the launch of Chrome 68, Google now will call out sites with unencrypted connections as “Not Secure” in the URL bar.
با راه اندازی کروم ورژن ۶۸(به بالا)، گوگل ارتباطات رمزگذاری نشده با سایت ها را در نوار آدرس خود «نا امن» می نامد.
در ابتدا اگر گواهینامه ssl خود را دریافت نکرده اید، جهت دریافت ssl رایگان به مقاله روبرو مراجعه نمایید : ssl رایگان
گواهینامه ssl خود را فعال نمایید و ادامه مقاله را مرحله به مرحله دنبال کنید.
مراحل انتقال سایت از http به https
تفاوتی نمی کند که از هاست دایرکت ادمین استفاده می کنید و یا هاست cpanel (و یا هاست های مختلف دیگر). این مراحل برای تمامی وبسایت ها یکسان است. بدون مقدمه چینی به سراغ مراحل تبدیل و ریدایرکت http به https می رویم.
۱ – ویرایش تمامی لینک هایی که در وبسایت با پروتکل http هستند
همیشه بهترین عملکرد استفاده از آدرس دهی نسبی(relative URLS) است اما ممکن است طراح وبسایت شما به صورت مطلق آدرس دهی ها را انجام داده باشد. بنابراین هنگام انتقال سایت از http به https حتما میبایست این نوع لینک ها را به ورژن جدید سایت (https) انتقال دهید. جهت انجام اینکار می بایست تمامی لینک های موجود در وبسایت و پایگاه داده که در ابتدای آنها http قرار دارد پیدا شوند و با https جایگزین شوند.(بهتر است قبل از اجرای این بخش از پایگاه داده خود بک آپ تهیه کنید)
اگر از سیستم مدیریت محتوای (CMS) وردپرس استفاده می کنید، افزونه WP Migrate DB را نصب و فعال نمایید(مشاهده افزونه). پس از فعال سازی، در بخش “ابزار” های وردپرس می توانید این افزونه را مشاهده نمایید.در تب Migrate، ابتدا گزینه زیر را فعال کنید:
در قسمت New URL می بایست آدرس وبسایت با https را وارد نمایید و در قسمت Old URL آدرس وبسایت با http. فراموش نکنید که هر دو ورژن وبسایت با www و بدون www را با آدرس های جدید [با https] جایگزین نمایید :
http://mydomain.com
to https://mydomain.com
http://www.mydomain.com
to https://www.mydomain.com
در انتها بر روی
افرادی که از پلتفرم های اختصاصی و یا CMS های دیگر (نظیر جوملا، دروپال و …) استفاده می کنند نیز می بایست این مرحله را انجام دهند.حال یا با استفاده از کوئری های SQL و یا افزونه های موجود.
۲ – بروزرسانی جاوا اسکریپت های سفارشی و کتابخانه های Ajax به https
ممکن است وبسایت شما از اسکریپت هایی استفاده می کند که در وبسایت های دیگر میزبانی می شوند.این آدرس ها نیز می بایست با ورژن https آن ها جایگزین گردد وگرنه هشدار mixed content دریافت خواهید کرد و قفل موجود در آدرس بار مرورگر به رنگ سبز در نخواهد آمد.برای مثال اگر از کتابخانه jQuery گوگل استفاده می کنید، از استفاده ورژن https این کتابخانه در کدهای خود اطمینان حاصل کنید:
https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js
۳ – ریدایرکت ۳۰۱ آدرس های قدیمی (با http) به آدرس های جدید (با https)
این بخش، مهمترین مرحله در ریدایرکت http به https به شمار می آید. ریدایرکت ۳۰۱، نزدیک ۹۰ تا ۹۹ درصد از قدرت صفحات را به صفحات ریدایرکت شده منتقل می کند. اینکار می بایست در سطح سرور انجام شود.
برای وبسایت های با وب سرور NGINX :
کد زیر را در Nginx config قرار دهید:
server {
listen 80;
server_name domain.com www.domain.com;
return 301 https://domain.com$request_uri;
}
برای وبسایت های با وب سرور آپاچی (Apache) :
کد زیر را در قایل htaccess. و در زیر RewriteEngine On خود قرار دهید :
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
* اکثر هاست ها از وب سرور آپاچی استفاده می کنند.
* فایل htaccess. در روت هاست [در اکثر مواقع public_html] قرار دارد.این فایل ممکن است در Cpanel مخفی باشد.جهت نمایش آن بر روی Settings در بالای فایل منیجر کلیک نمایید:
سپس تیک گزینه (Show Hidden Files (dotfiles را فعال نمایید و save را بزنید.حال می توانید این فایل را در صورت موجود بودن در میان فایل های روت هاست خود بیابید.[اگر با انجام اینکار فایل پیدا نشد به منزله عدم وجود این فایل است.بنابراین فایلی با این نام ایجاد نمایید.هنگام ایجاد فایل به نقطه ابتدایی آن توجه نمایید (htaccess.)]
ریدایرکت http به https در وردپرس
نمونه کد فوق برای استفاده در سیستم مدیریت محتوای(CMS) وردپرس:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
۴ – بروز رسانی فایل robots.txt
فایل robots.txt خود را بررسی نمایید و اگر آدرسی با http وجود داشت، آن را به https تغییر دهید.جهت یافتن این فایل به مقاله روبرو مراجعه نمایید : اموزش فایل robots.txt
۵ – سئو : کنسول جستجوی گوگل، نقشه سایت، Fetch کردن
اگر تمامی مراحل را به درستی دنبال کرده باشید، هم اکنون وبسایت شما به صورت کامل به https منتقل شده است.در این قسمت می خواهیم موارد مهم دیگری که به سئو سایت مرتبط می شوند را تنظیم نماییم.
در ابتدا می بایست برای ورژن https وبسایت خود یک پروفایل در کنسول جستجوی گوگل ایجاد نمایید.به سادگی بر روی گزینه “Add a Property” کلیک نمایید و آدرس وبسایت خود با https را وارد نمایید:
در پروفایل ایجاد شده به بخش Sitemaps بروید و نقشه وبسایت خود را در صورت موجود بودن اضافه نمایید:
توجه: افرادی که در وبمستر تولز موتور جستجوی بینگ هم ثبت نام کرده اند، نیازی نیست پروفایل جدید ایجاد نمایند و تنها نقشه سایت خود با ورژن https را در آن ثبت نمایند.
در نهایت به قسمت Fetch as Google در بخش Crawl وبمستر تولز خود بروید و درخواست Crawl و بروزرسانی ایندکس نمایید[بر روی Fetch کلیک نمایید]:
سپس بر روی “Request Indexing” کلیک نمایید و سپس گزینه دوم را انتخاب نمایید و Go را بفشارید:
آموزش سرچ کنسول گوگل را در لینک روبرو بخوانید: آموزش وبمستر تولز گوگل
۶ – ثبت مجدد فایل disavow
اگر در گذشته برای رهایی از پنالتی گوگل و الگوریتم ها و یا سئوی منفی فایل disavow ساخته اید، می بایست آن را مجددا در ورژن https سایت خود آپلود نمایید.بسیاری از افراد این مرحله را فراموش می کنند که می تواند دردسر ساز باشد.
آموزش ساخت و آپلود فایل disavow در لینک روبرو به صورت کامل توضیح داده شده است : اموزش disavow
۷ – بروزرسانی پروفایل گوگل آنالیتیکس (Google Analytics)
جهت انجام اینکار وارد اکانت خود شوید و بر روی “Admin” در منوی کناری کلیک نمایید.در صفحه جدید بر روی گزینه “Property Settings” کلیک نمایید.سپس Default URL را بر روی https تنظیم نمایید:
اینکار را برای قسمت “View Settings” نیز انجام دهید.دو قسمت ذکر شده در تصویر زیر قابل مشاهده هستند:
۸ – بروزرسانی های متفرقه پس از ریدایرکت http به https
- لینک های خود در شبکه های اجتماعی نظیر Faceebook، Twitter و … را بروزرسانی کنید.
- بک لینک های موجود خود را تا حد امکان به ورژن https تغییر دهید.
* توجه: اگر از CMS وردپرس استفاده می کنید و پس از انجام موارد بالا، قفل موجود در آدرس بار مرورگرتان هنوز سبز نشده است، از افزونه SSL Insecure Content Fixer استفاده نمایید.
* برای افرادی که قفل مرورگرشان سبز نشده است: اگر از مرورگر کروم(Chrome) استفاده می کنید، Developer Tools مرورگر را باز کنید. جهت باز کردن آن بر روی صفحه کلیک راست کرده و Inspect را بزنید(و یا Ctrl + Shift + I را همزمان بفشارید). به بخش Console بروید. اگر هشدار Mixed Content مشاهده می کنید، آن را بررسی نمایید. برای مثال در تصویر زیر به ما هشدار می دهد که وبسایت با https بارگذاری می شود اما یکی از تصاویر با http بارگذاری شده است.
چه خوب! مشکل مشخص شد. برای رفع آن به دنبال کدی که این تصویر را بارگذاری می کند می گردیم و آدرس http آن را به https تغییر می دهیم و مشکل برطرف می شود.
بروزرسانی: در ورژن جدید مرورگر کروم، قفل به رنگ سبز در نمی آید و اگر آیکون قفل وجود داشته باشد به این معناست که ssl شما به درستی نصب شده است.
Ali
سلام
ممنون از مطلب خوبتون
متاسفانه سایت من بالا نمیاد و با این پیام مواجه میشم
Error 525: SSL handshake failed
هاست من رایگان و از گیگفا هست، ممکنه از اون باشه؟
باید چکار کنم؟
اگه درست نمیشه برگردونم به همون حالت قبل
mahdi
خیلی ممنون از سایت مفیدتون سایت خیلی خوبی دارین
حمید
سلام ممنون از اطلاعات مفیدتون
من با افزونه Migrate ارور ۵۰۳ رو میده
A problem occurredwhen attempting to process the following table (#13) wp_option
محمد ميرزائي
سلام به این مشکل در حین تبدیل http به https خودم که نقشه سایت برام نشون داده نمیشه This page contains the following errors:
error on line 1 at column 7: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.
علی
سلام نباید در کد
RewriteCond %{HTTPS} off
به جای off ما on رو قرار بدیم ؟ فرقشون چیه؟
کریم
سلام من تمام مراحل را انجام دادم و سایتم را در سرچ کنسول گوگل با نسخه https ثبت کردم الان سه تا پراپرتی در سرچ کنسول دارم یکی برای نسخه http یکی برای https و دیگری https همراه با www . اما رتبه سایتم هر روز داره کاهش پیدا میکنه هرچقد فعالیت هم انجام میدم بازم فایده نداره آیا در نسخه جدید google search console باید نسخه https رو حتما به عنوان پراپرتی تعریف کنیم ؟ و اینکه از این بعد صفحاتم رو در ورژن https سایت و در url inspect ثبت کنم ؟
علی طباطبایی
سلام؛ مقاله آموزش سرچ کنسول را مطالعه کنید: آموزش سرچ کنسول گوگل
محمد
سلام
واقعا خیلی روان و ساده این مطالب رو توضیح دادید. من تونستم سایتم رو Https کنم.
واقعا سپاسگزارم
مهدی
سلام خسته نباشید من افزونه wp migrate که گفتید رو میزنم سر جدول ۱۸ یعنی wp_options گیر میکنه ارور internal server error میده شماره ارورشم ۵۰۰ هستش به نظرتون برای چیه این مشکل؟
shayan
سلام من همه کار هارو انجام دادم اما فقط wp-admin تایید شده ادرس وبسایتم به جای قفل شده علامت تعجب همه ی مراحل رو دقیق انجام دادم
علی طباطبایی
سلام دوست خوبم. وبسایتتون را بررسی کردیم و مشکلی وجود نداشت.
farzad
سلام عرض شد
من inspect زدم و بخاطر یک عکس mixed دارم
چجوری میتونم برطرفش کنم و https بشه
علی طباطبایی
سلام فرزاد عزیز؛ باید در مکانی که تصویر بارگذاری می شود، پروتکل http آن را به https تغییر دهید.
محمد
سلام ممنونم از محتوای خوبتون
میشه راهنمایی بفرمایید چطوری میشه کدی زد مثلا از دامنه tabfile.ir/files هر کسی صفحه ای رو باز کرد کلا منتقل بشه به سایت go2file.ir با همون صفحه ای که باز کرده یعنی اگر کسی صفحه tabfile.ir/files/1 رو باز کرد بره سایت جدید به صفحه go2file.ir/1 یعنی انتقال دامنه به همان ادرسی که هست به سایت جدید توی هر دوتا هم ssl فعال هستش
اگر ممکنه راهنماییم کنید
محمد
سلام
من مرحله اول رو با WP Migrate DB انجام دادم اما بعدش دیگه سایت بالا نمیاد و نمیتونم لاگین کنم.
لطفا راهنماییم کنید
با تشکر
علی طباطبایی
سلام محمد عزیز؛ احتمالا قسمتی از آموزش را اشتباه انجام داده اید. با تغییر چند فیلد در پایگاه داده (و یا فایل های اصلی وردپرس نظیر wp-config) مشکلتون برطرف خواهد شد. اگر طبق توصیه ما قبل از این مرحله بک آپ تهیه کرده اید، آن را بازگردانی کنید در غیر اینصورت به هاستینگ خود تیکت بزنید و درخواست بازگردانی آخرین بک آپ و یا برطرف کردن مشکل را بدهید.
Behnam
سلام خسته نباشید. بنده بعضی عکسها را از پیکوفایل توی سایتم میگذارم که http است. بعد آنها را در سایت که می گذارم نشان نمی دهد. ممنون میشم راهنمایی کنید
سئو ارزان
سلام دوست عزیز. هنگامی که صفحات وبسایت بر روی پروتکل https به کاربران تحویل داده می شود، تمامی مواردی که با پروتکل http هستند توسط مرورگر به طور پیش فرض بلوکه می شوند.
در حال حاضر دو کار می توانید انجام دهید:
۱. از سرویس های اشتراک فایلی که بر روی پروتکل https هستند استفاده نمایید.
۲. کل وبسایت خود را بر روی پروتکل http به کاربران تحویل دهید.
برای توضیحات بیشتر لینک روبرو را مشاهده نمایید: اجازه بارگذاری منابع http بر روی پروتکل https
امیدوارم مفید واقع شود. موفق باشید
دقیق
سلام خسته نباشید . وقتی یک عکس را از سایتهای مختلف می آوریم به سایت، سبزی نماد از بین می رود؛ برای این مورد چه چیزی پیشنهاد می کنید؟ (آیا میتوان مثلا سایت پیکوفایل را استثنا کرد؟) . با تشکر
سئو ارزان
سلام دوست عزیز. از بین رفتن رنگ سبز قفل نشان دهنده وجود mixed content است و به این معنی است که یکسری از فایل های موجود بر روی پروتکل http به کاربران تحویل داده می شود.
راهکار های پیشنهادی در لینک روبرو را مشاهده نمایید: مشاهده
امیر
با سلام ممنون از مطلب کامل شما وبسایت من به رنک سبز در آمد ولی تمامی فونت ها برهم ریخت.مشکل از کجا می تواند باشد؟
سئو ارزان
سلام
مشکل بهم ریختن فونت ها می تواند به خاطر Vary header باشد. برای بررسی این مورد، لینک زیر را مشاهده فرمایید و کد های آن را در فایل htaccess. خود قرار دهید
عدم بارگذاری font-face بر روی https
پدرام
سلام
ممنون بابت آموزش خوبتون
من قسمت ۲ رو طبق فرمایش شما رفتم و بنظر میاد دوتا عکس داره از لینک های خارجی فراخوانی میشه ولی هرکاری کردم نتونستم پیداش کنم لطفا راهنمایی کنید
عکس رو هم داخل لینک زیر آپلود کردم:
https://kahroba-shop.ir/wp-content/uploads/2019/Capture.JPG
سئو ارزان
سلام
میبایست داخل کدهای خود بگردید و آن ها را بیابید. هم چنین ممکن است این موارد را در بخش تنظیمات و یا سفارشی سازی تم وردپرس خود بیابید.
صادق
ممنون گرامی
رسول احمدپناه
مشکل یکی در میون حل شد و تنها وب سایتی که این مورد رو درست توضیح داد وب سایت شما بود در بخش ۳ – ریدایرکت ۳۰۱ آدرس های قدیمی (با http) به آدرس های جدید (با https)
بازم تشکر
سئو ارزان
سلام
خوشحالیم که مورد استفاده واقع شده دوست عزیز
رسول احمدپناه
واقعا مطلب کاملی بود و خیلی بهم کمک کرد . ممنونم . فقط یه مشکلی در ثبت در گوگل سایت مپ داشتم . اونم این که برای من یه ارور میده که ارور دایرکت هست چطوری میشه اینو برطرف کرد ؟
http://s9.picofile.com/file/8351454926/Screenshot_120_.png
http://s8.picofile.com/file/8351454900/Screenshot_121_.png
یه مشکل دیگه ای که هم هست این که هر دفعه لود میشه یکی در میون یا هر چند تادر میون https هست بقیه http گاهی وقت ها لود میشه. راه حلی داره ؟
سئو ارزان
سلام
در ابتدا توجه کنید ادرس سایت مپ وبسایت شما به صورت زیر است:
https://test.info/sitemap_index.xml
و اگر هنگام ثبت سایت مپ به جای sitemap_index.xml، آدرس sitemap.xml را وارد کنید با هشدار ریدایرکت مواجه خواهید شد. همچنین برای هشدار ریدایرکت صفحه اصلی بررسی کنید که حتما بخش ۵ را انجام داده اید و در کنسول گوگل با https وبسایت خود را ثبت کرده اید.
اگر با مشکل دیگری مواجه شدید و یا مشکل حل نشد مطرح نمایید.
سجاد
سلام و تشکر از آموزش خوبتون. قفل سایت بنده همچنان زرد هست و سبز نشده در حالی که مراحل بالا رو انجام دادم. چه کار دیگه ای باید بکنم ؟
ممنون
سئو ارزان
سلام
در داخل قالب وبسایت خود بگردید و هر آدرسی که با http شروع می شود را به https تغییر دهید. برای مثال تصاویر داخل فوتر وبسایتتان با پروتکل http بارگذاری می شوند.
sima
سلام من همه مراحل رو رفتم البته ریدایرکت hhtp به https رو از روش دیگه ایی رفتم ولی باز هم نشد و سبز نیست بالای سایتم
سئو ارزان
سلام
آدرس وبسایت خود را ارسال نمایید
محمد
سلام.
بروزرسانی جاوا اسکریپت های سفارشی و کتابخانه های Ajax به https چطوری باید انجام شه؟
سئو ارزان
سلام
میبایست داخل فایل های پوسته خود بگردید و مکانی که کتابخانه ها (فایل های جاوا اسکریپت) در آن فراخوانی شده اند را پیدا کنید و لینک http آن را به https تغییر دهید(معمولا اینگونه فایل ها در header و footer فراخوانی می شوند).
علیرضا
سلام و درود
من در حال اجرای آموزش شما به صورت قدم به قدم بر روی سایت خود هستم. الان به مرحله ۳ “ریدایرکت ۳۰۱ آدرس های قدیمی (با http) به آدرس های جدید (با https)” رسیدم. برای وبسایت های با وب سرور لایت اسپید چه نوع کدی و به چه صورتی قرار بدم؟ وب سرور من لایت اسپید هستش.
طراحی سایت
خیلی ممنون
عالی بود
مجتبی
سپاس فراوان بزرگوار
هاست
سپاس از شما
احمد مهری
مطلبتون برای من خیلی مفید بود ممنون
طراحی سایت
سپاس