Как перенаправить сайт с HTTP на HTTPS без использования перезаписи URL? - PullRequest
0 голосов
/ 02 октября 2018

Я пробовал использовать URL Rewrite , он работает нормально, но я хотел знать, есть ли другое лучшее решение

<rewrite>
        <rules>
            <rule name="HTTP to HTTPS " enabled="true" stop Processing="true">
                <match URL="(.*)" />
                <conditions>
                    <add input="{HTTPS}" pattern="off" />
                </conditions>
                <action type="Redirect" URL="https://{HTTP_HOST}/{R:1}" />
            </rule> 
        </rules>

Это кодя использовал для перенаправления

1 Ответ

0 голосов
/ 03 октября 2018

Я использую код PHP для обработки перенаправления, как показано ниже, и должен работать на любом сервере с PHP и SSL.Вы должны указать, какие субдомены вы будете использовать, но это незначительно и обычно мало что меняет.Просто поместите это в файл и добавьте его вверху любой страницы, которую вы хотите перенаправить на HTTPS.

if (!(isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || 
   $_SERVER['HTTPS'] == 1) ||  
   isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&   
   $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'))
{
    //echo $_SERVER["HTTP_HOST"];
    $subdomains = array('cp','rec','dsm','outback','live','pw');
    $host = explode('.',$_SERVER['HTTP_HOST']);
    if(in_array($host[0],$subdomains)) {
       $redirect = 'https://' . str_replace('www.','',$_SERVER['HTTP_HOST']) . $_SERVER['REQUEST_URI'];
    }
    else {
       $redirect = 'https://www.' . str_replace('www.','',$_SERVER['HTTP_HOST']) . $_SERVER['REQUEST_URI'];
    }
    echo $redirect;
   header('HTTP/1.1 301 Moved Permanently');
   header('Location: ' . $redirect);
   exit();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...