زمان انتشار:
سهشنبه 16 شهریور 1395
تغییر مسیر HTTP به HTTPS به طور خودکار
در صورتی که وب سایت دارای SSL باشد، میتوانید با استفاده از کد های Rewrite بازدید کنندگان سایت را از پروتکل HTTP به HTTPS به طور خودکار تغییر مسیر دهید. در این راهنما نمونه از این کد ها ارائه شده است.
تغییر مسیر HTTP به HTTPS به طور خودکار
در میزبانی های لینوکسی با استفاده از فایل htaccess. تغییر مسیر را انجام دهید؛ به طوری که میبایست کد زیر را در فایل htaccess. در شاخه اصلی میزبانی خود قرار دهید.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
در میزبانی های ویندوزی با استفاده از فایل web.config تغییر مسیر را انجام دهید؛ به طوری که میبایست کد زیر را در فایل web.config در شاخه اصلی میزبانی خود قرار دهید.
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
و در صورتی که این تغییر مسیر در Sub domain باشد می بایست کد را بصورت زیر تغییر دهید.
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
<add input="{HTTP_HOST}" pattern="(.+)\.Domainmame\.com" >
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
در صورتیکه در کنترل پنل ویندوزی از زبان php استفاده می نمایید کد زیر را در انتهای کدهای index.php کپی نمایید.
if (!(isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' ||
$_SERVER['HTTPS'] == 1) ||
isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'))
{
$redirect = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $redirect);
exit();
}
?>