Только http: // и www url не перенаправляют на https - PullRequest
0 голосов
/ 20 мая 2019

У меня есть сайт Wordpress, который был перенесен с некоторыми вопросами.Цель состоит в том, чтобы принудительно перенаправить всегда с https и www.

Это работает, КРОМЕ для http://www.caravelleconsulting.com, который перенаправляет на http://www.caravelleconsulting.com без https

.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

#Redirection to HTTPS AND WWW
# version 1
#RewriteCond %{HTTP_HOST} ^caravelleconsulting\.com$
#RewriteRule ^(.*)$ "https\:\/\/www\.caravelleconsulting\.com\/$1" [R=301,L]
# Version 2 - same result than the first version
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]


# send to router
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>

# END WordPress

Я нашел третье решение здесь , но когда я тестирую с http://www.redirect -checker.org , у меня есть цикл 301 Moved Permanently.

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 20 мая 2019

Наконец, я нашел свое решение на основе нескольких ответов здесь

.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

#First rewrite any request to the wrong domain to use the correct one (here www.)
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#Now, rewrite to HTTPS:
#avoid loop - (https://stackoverflow.com/questions/13977851/htaccess-redirect-to-https-www)
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


# send to router
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>

# END WordPress
...