web-dev-qa-db-fra.com

Les redirections de site Web vers httpss (pas https) dans Safari et IE mais pas Chrome

J'ai fait une règle de redirection dans mon fichier .htaccess pour https://pg-flowsolutions.com qui spécifie que si quelqu'un entre un chemin non valide (par exemple https: // pg- flowsolutions.com/blablabla ) le visiteur doit être redirigé vers l'index des sites Web.

Maintenant, cela fonctionne bien dans Google Chrome, mais dans Safari et IE je constate qu'un extra 's' est ajouté à la barre d'adresse. Le navigateur tente donc d'ouvrir httpsS: // pg-flowsolutions. .com - ce qui crée évidemment une erreur.

Donc, l'erreur que je cherche à résoudre est l'origine de l'extra qui est inclus dans la barre d'adresse lors de l'ouverture d'une URL non valide.

Est-ce quelque chose qui cause ce problème dans mon fichier .htaccess, cela peut-il être causé par certains paramètres du serveur dans Apache, ou peut-être est-ce quelque chose qui peut être corrigé dans Wordpress même?

Je n'ai pas été en mesure d'identifier la cause de ce problème. Mon fichier .htaccess est le suspect présumé, mais je n'y ai trouvé aucune erreur.

Il force actuellement tous les visiteurs HTTP du site vers la version HTTPS et est également censé rediriger toutes les tentatives d'ouverture d'une page non existante vers le site d'index.

Comme mentionné, cela fonctionne pour moi dans Chrome mais pas dans les autres navigateurs.

Mon fichier .htaccess ressemble à ceci

<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
1
lundzern

Vous devriez sérieusement envisager de NE PAS rediriger les soft 404 vers la page d'accueil! Non seulement cela gêne-t-il l'expérience utilisateur fournie, Google et Bing ont peu de chances de le séduire non plus, mais si vous insistez ...

Supprimez le contenu de votre fichier .htaccess et importez les éléments suivants:

# BEGIN Removing WWW and Enforcing SSL
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_Host} ^www\.(.+)$ [NC]
    RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
</IfModule>
# END Removing WWW and Enforcing SSL

# 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

Modifiez votre WordPress 404.php

Ensuite, dans votre WordPress fichier de thème _ (trouvé en apparence), recherchez 404.php et renommez-le 404-old.php. S'il n'y en a pas, ne vous inquiétez pas. Dans le dossier du thème, créez un fichier 404.php et importez les éléments suivants:

<?php
    header("HTTP/1.1 301 Moved Permanently");
    header('Location: https://pg-flowsolutions.com/');
    exit();
?>

Je ne veux pas éditer mon 404.php

Bien que je recommande d’éditer 404.php, vous préférerez peut-être pas trop, sinon vous pourriez simplement utiliser le code suivant au bas de votre fichier htaccess:

  • ErrorDocument 404 /index.php

Adresse du site WordPress

SOURCE

Assurez-vous de mettre à jour WordPress pour qu'il fonctionne en tant que HTTPS. Pour ce faire, connectez-vous au WordPress Dashboard et accédez à Paramètres> Général. Puis mettez à jour ces URL:

WordPress Address URL Settings

2
Simon Hayter