ریدایرکت http به https از جمله اقدامات مهمی است که پس از تهیه ssl باید حتما انجام شود. شاید بپرسید ریدایرکت چیست؟ منظور از ریدایرکت یا تغییر مسیر، فرایندی است که طی آن کاربر به آدرس جدید سایت منتقل میشود. این تغییر مسیر گاهی به صورت دائمی و گاهی نیز به شکل موقتی صورت میگیرد. از آنجایی که پس اعمال تغییرات بر روی آدرس یا دامنه سایت، ریدایرکت کردن کاربران به آدرس یا دامنه جدید، یک امر بسیار ضروری است.
در ادامه این مطلب روش ریدایرکت http به https و بالعکس را بررسی میکنیم. همچنین کلیه قطعه کدهایی که برای ریدایرکت کردن بخشهای مختلف سایت به آن نیاز دارید را به شما معرفی میکنیم.
ریدایرکت http به https در htaccess
برای ریدایرکت http به https در htaccess نیازی به استفاده از افزونههای خاص نیست زیرا تغییرات موردنظر قرار است از طریق تغییر فایل htaccess سایت صورت بگیرد. برای این کار ابتدا باید به هاست خود مراجعه کنید و سپس روی گزینه فایل منیجر کلیک کنید تا بتوانید به بخش مدیریت فایلها دسترسی پیدا کنید. پس از آن باید بر روی گزینه setting کلیک نمایید و تیک کنار گزینه Show Hidden Files (dotfiles) را بزنید تا فایل htaccess برای شما قابل رویت باشد.
سپس با ورود به لیست فایلها، باید به پوشه public_html بروید و تغییرات لازم را بر روی فایل htaccess اعمال کنید. برای تغییر این فایل باید بر روی گزینه edit بزنید و کد زیرا را وارد کنید.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
ریدایرکت https با (www (https://www به بدون www
نکته دیگری که در ریدایرکت http به https اهمیت دارد، ریدایرکت https با (www (https://www به بدون www است که برای انجام آن باید مراحل زیر را طی کنید:
- مراجعه به کنترل پنل هاست
- انتخاب گزینه File Manager
- وارد شدن به پوشه public_html
- کلیک بر روی گزینه htaccess
- انجام کلیک راست و انتخاب گزینه edit
- وارد کردن قطعه کد زیر
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www. [NC]
RewriteRule ^ https://okex.ir%{REQUEST_URI} [L,NE,R=301]
ریدایرکت https به http در htaccess
به منظور ریدایرکت از پروتکل امن HTTPS به پروتکل HTTP باید مسیر زیر را طی کنید:
- ورود به هاست
- کلیک بر روی گزینه File Manager
- مراجعه به پوشه Public_html و انتخاب گزینه htaccess
- راست کلیک بر روی فایل htaccess
- انتخاب گزینه edit
- نوشتن کد زیر
# Redirect HTTPS to HTTP
RewriteCond %{HTTP:X-Forwarded-Proto} =https
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
ریدایرکت آدرس سایت بدون www به آدرس با www
در صورتی که مایل هستید آدرس سایت مورد نظر شما فقط با www برای کاربران باز شود باید قطعه کد زیر را در فایل .htaccess وارد نمایید. سپس با کلیک بر روی گزینه Save Changes باید این تنظیمات را ذخیره کنید.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
نکته مهم: قسمت example.com مخصوص نام دامنه است پس به جای آن باید آدرس دامنه سایت مورد نظر را وارد کنید.
ریدایرکت آدرس سایت با www به آدرس بدون www
از جمله تغییر مسیرهایی که در ریدایرکت http به https ممکن است به آن نیاز پیدا کنید، ریدایرکت آدرس سایت است. چنانچه میخواهید آدرس سایت شما بدون www برای کاربر باز شود، همچون بخش قبلی باید کد زیر را در فایل .htaccess وارد کنید. فراموش نکنید که به جای عبارت example.com نیز حتما آدرس دامنه سایت موردنظر را قرار دهید.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC]
ریدایرکت http به https بجز یک دایرکتوری یا فولدر
برای ریدایرکت http به https بجز یک دایرکتوری یا فولدر، در بخش ادیت باید کد زیر را وارد کنید و به جای demo نام دایرکتوری موردنظر خود را قرار دهید.
<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>
ریدایرکت فقط یک پوشه از سایت بر بستر https
چنانچه در نظر دارید ریدایرکت http به https فقط یک پوشه از سایت بر بستر https اعمال شود، فقط کافی است قطعه کد زیر را در بخش edit قرار دهید. فقط به باد داشته باشید که به جای folder باید نام پوشه موردنظر را قرار دهید. همچنین به جای www.example.com نیز نام دامنه سایت موردنظر را جایگزین کنید.
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} folder
RewriteRule ^(.*)$ https://www.example.com/folder/$1 [R,L]
ریدایرکت ساب دامنه بر روی دامنه اصلی
برای ریدایرکت ساب دامنه بر روی دامنه اصلی باید ابتدا وارد پوشه ساب دامین شوید و از طریق طی کردن مسیر Settings > و فعال کردن تیک گزینه Show Hidden Files فایلهای مخفی را از حالت پنهان بودن خارج کنید. پس از این مرحله در فایل.htaccess
باید از کد زیر استفاده کنید. فقط لازم به ذکر است که نام ساب دامین خود را به جای Your SubDomain و نام دامنه اصلی را در قسمت Example.com جایگذاری کنید.
#Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sub.domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.sub.domain.com$
RewriteRule (.*)$ http://domain.com/$۱ [R=301,L]
ریدایرکت یک فایل در htaccess
هنگام ریدایرکت http به https، به منظور اعمال ریدایرکت کردن یک فایل در htaccess، ابتدا باید این فایل را از حالت مخفی خارج نمایید. در واقع برای انجام این عمل باید مراحل زیر را طی کنید:
- ورود به قسمت public_html
- کلیک بر روی گزینه settings
- زدن تیک show hidden files
- وارد کردن کد زیر
RedirectMatch 301 /oldurl /newurl
ریدایرکت تمامی آدرس های یک دامنه به یک آدرس خاص
در فرایند ریدایرکت http به https با وارد کردن قطعه کد زیر نوعی تغییر مسیر دائمی رخ میدهد و کلیه آدرسهای یک دامنه به یک آدرس خاص ریدایرکت میشود. معمولا پس از انجام این تغییرات، هنگامی که کاربر سعی دارد وارد یک URL قدیمی شود، این تغییر مسیر او را به یک آدرس خاص هدایت میکند.
RedirectMatch 301 / /newurl
ریدایرکت 302 در .htaccess
در پروسه ریدایرکت http به https ریدایرکت ۳۰۲ یک تغییر موقت محسوب میشود زیرا موتورهای جستجو و کاربران را طی یک زمان محدود به مکانهای جدید هدایت میکند. به طور کلی باید گفت که ریدایرکت ۳۰۲ در htaccess. یک تغییر مسیر بسیار ساده محسوب میشود زیرا به کمک یک متا تگ یا در جاوا اسکریپت قابل انجام است و برای تغییرات وقت کمتری نسبت به ریدایرکت ۳۰۱ نیاز دارد. کد زیر به عنوان قطعه کد اصلی ریدایرکت ۳۰۲ به حساب میآید.
Redirect 302 / http://domain.com/
ریدایرکت دامنه قدیمی به دامنه جدید
در راستای ریدایرکت دامنه قدیمی به دامنه جدید نیز باید مسیر سیپنل> public_html > فایل htaccess. را طی کنید و کد زیر در بخش ادیت آن قرار دهید. فقط فراموش نکنید که باید نام دامنه قدیمی را در بخش domain.ir قرار دهید و نام دامنه جدید را به جای domain.com بگذارید.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^ domain.ir [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain.ir [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301,NC]
ریدایرکت یک صفحه به صفحه دیگر
هنگام ریدایرکت http به https برای ریدایرکت کردن یک صفحه به صفحه دیگر باید از کد زیر استفاده کنید. فقط به این مسئله توجه داشته باشید که به جای عبارت old-index.html نام صفحه قبلی و در قسمت mynewwebsite نام صفحه جدید را وارد کنید.
Redirect /old-index.html http://www.mynewwebsite.com/foldername/new-index.html
ریدایرکت دامنه پارک شده به ساب دامنه
برای ریدایرکت دامنه پارک شده به ساب دامنه باید مسیر کد زیر را وارد کنید و به جای parkdomain.com نام دامنه پارک شده را درج کنید. همچنین به جای عبارت main domain/subdomain آدرس ساب دامنه را قرار دهید.
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www.)?parkdomain.com$ [NC]
RewriteRule ^(.*)$ http://main domain/subdomain [L]
ریدایرکت دامنه اصلی به ساب دامنه
برای ریدایرکت دامنه اصلی به ساب دامنه باید کد زیر را در بخش ادیت وارد کنید. ضمنا نام دامنه و پسوند آن را باید جایگزین domain و .com نمایید و در قسمت sub.domain.com نیز نام ساب دامنه را قرار دهید.
Options +SymLinksIfOwnerMatch
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule ^http://sub.domain.com[R,L]
ریدایرکت webmail
برای تغییر webmail.domian.com به domain.com/webmail باید کد زیر وارد کنید:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www.)?webmail.domain.com/$ [NC]
RewriteRule ^(.*)$ http:// domain.com/webmail/ [L]
لازم به یادآوری است که به جای عبارت domain.com باید نام دامنه موردنظر خود را قرار دهید.
ریدایرکت ساب دامنه به ip با پورت (Port)
در صورتی که در قطعه کد زیر، نام دامنه پارک شده را به جای parkdomain.com قرار دهید و در قسمت main domain/subdomain نیز آدرس ساب دامین را بگذارید، ریدایرکت ساب دامنه به ip با پورت صورت میگیرد.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^subsonic.mydomain.com$ [NC]
RewriteRule ^(.*)$ http://ip:4040/$1 [R=301]
ریدایرکت کردن کل ترافیک سرور بر روی https
با گذاشتن کد زیر در بخش edit فایل htaccess کل ترافیک هاست به https://www.example.com ریدایرکت میشود.
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
ریدایرکت یک پسوند خاص صفحات سایت به پسوند دیگر
با نوشتن کد زیر، صفحاتی همچون http://domain.com/Page.html به http://domain.com/Page.php تغیر مسیر میدهند. به عبارتی میتوان گفت پسوند خاص صفحات سایت به یک پسوند دیگر تغییر مسیر میدهد. البته لازم به ذکر است که این تغییر مسیر یک تغییر دائمی است و مسیر سایت به طور دائمی تغییر پیدا میکند. این روش از نظر اهداف سئو نیز یک روش مفید و سودمند به شمار میرود زیرا موتورهای جستجو درک میکنند که مسیر سایت برای همیشه تغییر پیدا کرده است.
RedirectMatch 301 (.*)\.html$ http://domain.com$1.php
ریدایرکت دامنه در cPanel
برای ریدایرکت دامنه در سیپنل باید مراحل زیر را طی کنید.
- ابتدا وارد سیپنل شوید
- پس از آن به منوی «Domain» مراجعه کنید و بر روی لینک «Redirects» کلیک نمایید.
- بعد از آن یک پنجره را مشاهده خواهید کرد که دارای فیلدهای مختلف است باید در آنها اطلاعاتی را وارد کنید.
- معمولا اولین فیلدی که مشاهده میکنید، «Type» نام دارد که در آن باید نوع تغییر مسیر را انتخاب کنید در واقع باید بگویید که قصد دارید تغییر مسیر سایت شما دائمی (۳۰۱) یا موقت (302) باشد.
- در فیلد دوم نیز باید نام دامنه خود را درج نمایید.
- فیلد سوم نیز مخصوص ریدایرکت فایلهای خاص است.
- در فیلد Redirects to نیز بلید نام دامنهای که مایل هستید، ریدایرکت به آن انجام شود را وارد نمایید.
- پس از تکمیل فیلدها در پایین صفحه، بخشی به نام « Redirection» وجود دارد که از طریق آن باید نوع مدیریت ریدایرکتهای www را انتخاب نمایید.
- پس از اعمال کلیه تغییرات، فقط کافی است که روی گزینه Add کلیک کنید تا تمام تغییرات لحاظ شده، اعمال شود.
سازنده کدهای Htaccess آنلاین
از جمله اقداماتی که میتواند به حفظ سایت شما در گوگل کمک کند، تغییر مسیر یا ریدایرکت کردن فایلها و صفحات است. در صورتی که برای ریدایرکت http به https نیاز به کدهای htaccess دارید و از آنها اطلاعی ندارید. با مراجعه به دو وبسایت زیر میتوانید به صورت آنی کدهای مخصوص را دریافت نمایید.
https://www.htaccessredirect.net/
https://www.rapidtables.com/web/tools/redirect-generator.html