web-dev-qa-db-fra.com

Wordpress https://example.com non redirigé vers https://www.example.com htaccess

J'utilise WordPress et je suis récemment passé à https. J'ai eu quelques problèmes depuis avec le domaine qui ne redirige pas correctement.

Actuellement, cela fonctionne correctement, mais https://example.com ne redirige pas vers https://www.example.com.

J'ai essayé beaucoup de façons mais je n'ai pas réussi jusqu'à présent.

Voici mon htaccess:

RewriteEngine On 
RewriteCond %{HTTP_Host} ^example.co.uk [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.co.uk/$1 [R,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
# BEGIN rlrssslReallySimpleSSL rsssl_version[2.1.12]
# END rlrssslReallySimpleSSL
<IfModule mod_expires.c>
    ExpiresActive on

    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
</IfModule>
2
lee

Il semblerait que vous manquiez simplement le drapeau OR:

RewriteCond %{HTTP_Host} ^example\.co\.uk [NC,OR]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.co.uk/$1 [R,L]

Soit le domaine nu est accédé OR vous accédez via HTTP puis redirigez. L'opérateur par défaut est AND les conditions.

Également échapper aux points de votre regex.

Remplacez R (temporaire) par R=301 (permanent) lorsque vous êtes sûr que tout fonctionne correctement.

UPDATE: Il est possible que SERVER_PORT ne signale pas le port correct (voir la directive seCanonicalPhysicalPort ). Vous pouvez également utiliser la variable HTTPS à la place:

RewriteCond %{HTTPS} off

Une autre alternative consiste à tester si l'hôte ne démarre pas www plutôt que de tester son égalité. Donc, en résumé:

RewriteCond %{HTTP_Host} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
1
MrWhite