web-dev-qa-db-fra.com

Pourquoi ma redirection no-www prend-elle plus de 2 secondes?

Mon site livingalignment.com est très lent à charger. Le domaine et l'hébergement sont tous avec GoDaddy. In Pingdom J'ai découvert qu'il redirige de www.livingalignment.com vers livingalignment.com et cela prend environ 2 secondes pour le faire, avec un temps de chargement total de 10 secondes. Si mis dans livingalignment.com alors cela prend environ 4 secondes.

Que dois-je faire pour résoudre ce problème?

1
cohen

Recherchez les règles de redirection 301 dans votre fichier .htaccess ou dans le fichier httpd.conf.

Dans httpd.conf, recherchez une règle semblable à celle-ci:

< VirtualHost www.domain.com >
      Redirect 301 / http://domain.com/
< /VirtualHost >

Dans .htaccess cherchez une règle qui ressemble à ceci:

RewriteCond %{HTTP_Host} ^www.domain.com [NC]
RewriteRule (.*) http://domain.com%{REQUEST_URI} [R=301,L]

Remarquez-les.
s'il se trouve dans httpd.conf - redémarrez Apache en exécutant: service httpd restart

Ceci dit, Je ne pense pas que ce soit la raison de la lenteur de votre site Web. En vérifiant les liens que vous avez fournis et en approfondissant davantage l'analyse, vous pouvez voir ce qui suit:

enter image description here

Je recommanderais d'utiliser des outils tels que firebug et des sites tels que celui que vous utilisez ou celui-ci pour trouver le vrai problème.

5
alfasin

Comme le note correctement alfasin, vous avez au moins deux problèmes. La première est que vous publiez les redirections à partir de WordPress, ce qui signifie que l'ensemble de l'application WP doit uniquement démarrer pour renvoyer cette redirection. Le deuxième problème est qu’il faut manifestement beaucoup de temps pour le faire.

Pour résoudre le premier problème, vous devez laisser Apache générer directement la redirection. Insérez le code suivant dans le fichier .htaccess de votre répertoire racine www:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_Host} !=livingalignment.com [NC]
RewriteRule ^(.*)$ http://livingalignment.com/$1 [R=301,L]

En ce qui concerne le deuxième problème, la première chose à faire, si vous ne l’avez pas déjà fait, est d’installer et d’utiliser un accélérateur PHP comme APC - c’est toujours un bon conseil pour toute grande PHP app. Assurez-vous également que l'interpréteur PHP est exécuté via FastCGI ou directement en tant que module Apache. exécuter PHP en tant que script CGI traditionnel est extrêmement lent et élimine la plupart des avantages de l'accélération.

Vous pouvez également rendre WordPress plus rapide, comme installer un plug-in de cache. Vous semblez déjà utiliser W3 Total Cache , qui semble être bien considéré, alors ce n'est pas grave. Notez que le simple fait de l'installer ne suffit cependant pas: pour obtenir des performances optimales, vous devez ajuster les paramètres en fonction de votre site.

Il y a aussi beaucoup d'autres choses que vous pouvez faire, mais comme je ne suis pas vraiment un expert en réglage des performances WordPress ou optimisation , je préférerais ne pas essayer d'écrire une En guise de didacticiel, je vous suggérerai simplement de googler et de passer en revue les résultats - nombre d’entre eux me semblaient au moins prometteurs au premier abord.

1
Ilmari Karonen

Oui, ce que @alfasin a dit est juste.

J'utilise le site Web WordPress et je souhaite forcer mon URL à la version www & HTTPS. J'utilise le plugin ReallySimpleSSL v2.2.12.

Le plugin ajoute ce code à ma racine .htaccess

# BEGIN rlrssslReallySimpleSSL rsssl_version[2.2.12]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_Host}/$1 [R=301,L]
</IfModule>
# END rlrssslReallySimpleSSL

Il faut 2 à 5 secondes pour rediriger vers la version www, lorsque je visite une version non-www.

Et après avoir ajouté ce que @alfasin suggère ci-dessus, cela ne prend pas une seconde pour le moment.

Génial, j'en suis très content.

Alors, voici ce que mon .htaccess maintenant

# BEGIN rlrssslReallySimpleSSL rsssl_version[2.2.12]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
#RewriteRule ^(.*)$ https://%{HTTP_Host}/$1 [R=301,L] 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
</IfModule>
# END rlrssslReallySimpleSSL
1
Gangsar Swapurba