Перенаправьте http на https через www, используя .htaccess - PullRequest
0 голосов
/ 13 февраля 2019

Как я могу перенаправить HTTP на https, включая WWW, используя .htaccess?

Пример:

  1. перенаправление http://example.com на https://www.example.com
  2. перенаправление http://www.example.com на https://www.example.com
  3. перенаправление https://example.com на https://www.example.com

Я пытаюсь

RewriteEngine On

RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"' [OR]
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [NE,R=301,L]

RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]

Ответы [ 4 ]

0 голосов
/ 13 февраля 2019

APACHE

RewriteCond %{HTTPS} off 
RewriteCond %{HTTPS_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

NGINX

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /srv/www/example.com/keys/ssl.crt;
    ssl_certificate_key /srv/www/example.com/keys/www.example.com.key;
    return 301 https://www.example.com$request_uri;
}

Вы можете заменить ssl на;директива с прослушиванием 443 ssl;как рекомендация из документации nginx .

0 голосов
/ 13 февраля 2019

Вы можете поместить следующий код в ваш .htaccess файл

RewriteEngine On
# ensure www.
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# ensure https
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Этот .htaccess файл будет перенаправлять http://example.com/ на https://example.com/.

Пояснение кода n:

  • [NC] соответствует версии URL в верхнем и нижнем регистре
  • Заголовок X-Forwarded-Proto (XFP) являетсяФактически стандартный заголовок для идентификации протокола
0 голосов
/ 13 февраля 2019

Попробуйте это

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
0 голосов
/ 13 февраля 2019
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteCond %{SERVER_PORT} 80 //If you want the condition to match port
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

Попробуйте в этом.Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...