PHP https переадресация URL - PullRequest
0 голосов
/ 24 ноября 2011

Хорошо, поэтому мне нужен мой сайт для автоматической пересылки всех запросов на сервер по http в https.Я использовал php без особых проблем, но теперь Godaddy говорит мне, что мне нужно изменить способ, которым я делаю это.Мой код правильный, я должен изменить, как я делаю это, какой метод лучше?Заранее спасибо за помощь!

<?php
if ($_SERVER['SERVER_PORT']!=443)
{
$url = "https://". $_SERVER['SERVER_NAME'] . ":443".$_SERVER['REQUEST_URI'];
header("Location: $url");
}
?>

Ответы [ 5 ]

1 голос
/ 24 ноября 2011

Вам не нужно указывать номер порта ... Порт HTTPS по умолчанию уже 443.Вам потребуется только явный номер порта, если вы используете службу https на каком-то ДРУГОМ порте.Как хорошо, почему повторное перенаправление?У вас есть 2 блока if (), которые делают одно и то же.

Однако простого тестирования для порта 443 недостаточно.Вы можете запустить ЛЮБУЮ услугу на любом порту.Просто HTTPS обычно на 443. Но ничто не говорит, что это ДОЛЖНО быть.Есть $_SERVER['HTTPS'], в котором подробно рассказывается, используется ли HTTPS или нет.

0 голосов
/ 24 ноября 2011

Я использую этот код в моем файле .htaccess, который прекрасно работает:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://example.ch/$1 [R,L]
0 голосов
/ 24 ноября 2011

Я бы использовал что-то, как описано здесь:

введите описание ссылки здесь

Я не хотел бы полагаться на порт 443. Кто-то может настроить нормальный трафик к 443 или использовать другой порт для https (оба редких).

Кроме того, поскольку это значение по умолчанию, вы можете опустить ": 443" ...

0 голосов
/ 24 ноября 2011

Вы можете использовать htaccess для этого:

RewriteEngine On
RewriteCond %{SERVER_PORT} !443
RewriteRule (.*) https://www.example.com/require-secure/ [R]

Надеюсь, это поможет

0 голосов
/ 24 ноября 2011

Лучшим способом было бы использовать .htaccess и mod_rewrite для перенаправления.

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

Это объясняется более подробно здесь .

...