Bonjour,
J'ai un problème avec mon site shopeco.fr
quand je rentre www.shopeco.fr dans la barre d'adresse, je tombe sur une erreur 404 www.shopeco.fr/www/index.php
au lieu de : shopeco.fr/index.php
avant que je n'active le https dans le htaccess cela marchait bien.
A notez que si j'enlève les 3 www c'est à dire shopeco.fr alors cela marche correctement.
Je viens de régénérer les certificats SSL. Que puis je faire d'autre ?
Merci d'avance
> www\.shopeco.fr/www/index.php<br /><br />cette url est erronée<br /><br /><br />```text<br />curl --head -XGET --user-agent Firefox https://shopeco.fr/<br /> HTTP/2 200 <br /><br />curl --head -XGET --user-agent Firefox https://www.shopeco.fr/<br /> HTTP/2 200 <br />```<br /><br />pas d'erreur 404, mais ton .htaccess n'est pas bon<br />supprime ce que tu as mis et ajoutes, **AU DÉBUT**:<br />```text<br />RewriteEngine On<br /><br /> ## no-www -> www<br />RewriteCond %{HTTP_HOST} !^www\.<br />RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]<br /><br /> ## http -> https<br />RewriteCond %{HTTPS} off<br />RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]<br />```<br /><br />---<br /><br />tu n'as pas de `.ovhconfig` et donc un php 5.4 :/<br /><br />en **Ftp**, créer le fichier `.ovhconfig`, **AU-DESSUS** du répertoire `www`:<br />```text<br />app.engine=php<br />app.engine.version=7.3<br />http.firewall=none<br />environment=production<br />container.image=stable<br />```<br /><br />---<br /><br />ton TTL par défaut est préhistorique, à changer pour éviter des délais de propagation longs au changement<br /><br />manager Ovh/domaine/zone DNS:<br /><br />* [editer en mode textuel]<br />* modifier _$TTL 86400_ par `$TTL 3600`, voire `$TTL 600`<br />* valider<br /><br />**ne pas utiliser [Modifier le TTL par défaut]**
Bonjour,<br />Pour commencer Kyodev je te remercie pour ta réponse très précise et très complète, je suis impressionné !<br />Par contre malheureusement je n'ai pas réussi à régler tous les problèmes pour l'instant, sauf le TTL que j'ai put mettre en 3600.<br /><br />J'ai toujours le même problème sous google Chrome, quand je rentre www.shopeco.fr , j'arrive sous shopeco.fr/www/index.php cela semble fonctionner par contre avec Edge et Safari.<br /><br />Voilà mon code .htaccess que j'ai placé avant les WWW :<br /><br /> Options +FollowSymlinks<br /> RewriteEngine On<br /> RewriteCond %{SERVER_PORT} 80<br /> RewriteCond %{HTTP_HOST} !^www\.<br /> RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]<br /> RewriteCond %{HTTPS} off<br /> RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]<br /> SetEnv PHP_VER 7_3<br /> SetEnv REGISTER_GLOBALS 0<br /> errorDocument 401 /401.php<br /> errorDocument 403 /403.php<br /> errorDocument 404 /404.php<br /> errorDocument 406 /406.php<br /> errorDocument 500 /500.php<br /> errorDocument 503 /503.php<br /> Options -Indexes<br /> SetEnv MAGIC_QUOTES 0<br /><br />J'ai bien tenté de passer au PHP 7.3, mais j'ai encore apparemment, deux erreurs à corriger et je ne sais pas lesquelles pour l'instant, plus aucun produit ne s'affiche après le passage au 7.3. J'ai activé le rapport d'erreur sur une page : www.shopeco.fr/test.php<br /><br /> error_reporting(E_ALL);<br /> ini_set("display_errors", 1);<br /> mysqli_connect("XXXXXXXXXX.mysql.db", "XXXXXXXXXXXXXX", "XXXXXXXXXXX") or die (mysqli_error ());<br /> // Select database<br /> mysqli_select_db("xxxxxxxxxxx") or die(mysqli_error());<br /> // SQL query<br /> $strSQL = "SELECT * FROM xxxxxxxxxxxxxx WHERE id=318750 OR id=348145 OR id=348139 OR id=348167 OR id=1235360 OR id=637021 OR id=3611034 OR id=4131184 OR id=1131466 OR id=1333083 OR id=42650009 OR id=312909 OR id=25338 OR id=24427 OR id=6450";<br /> // Execute the query (the recordset $rs contains the result)<br /> $rs = mysqli_query($strSQL);<br /> // Loop the recordset $rs<br /> while($row = mysqli_fetch_array($rs)) {<br /> // Name of the person<br /> $strName1 = $row['nom'];<br /> $strName2 = $row['prix'];<br /> $strImg = $row['img'];<br /> // Create a link to person.php with the id-value in the URL<br /> $strLink = "produit_nature.php?id=" . $row[produit_nature.php?id=" . $row[produit_nature.php?id=" . $row[<table style="border=\"0\" cellpadding="\"2\" cellspacing="\"2\"><tbody><tr><td style="\"width: 100px\">" . $strLink . "</td><td> </td><td style="\"text-align: left; background-color: rgb(250, 250, 250); width: 445px\"> " . $strLink2 . "</td><td> </td><td style="\"text-align: center; background-color: rgb(250, 250, 250); width: 80px\">" . $strLink3 . "</td></tr></tbody></table>";<br /> }<br /> // Close the database connection<br /> mysqli_close();<br /> ?><br /><br />Merci pour votre aide
Le message d'erreur est :
Warning: mysqli_select_db() expects exactly 2 parameters, 1 given in /home/shopeco/www/test.php on line 67
Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/shopeco/www/test.php on line 67
Les fonctions PHP d'accès aux bases de données ont été modifiées depuis la 5.6
Voir https://www.php.net/manual/en/function.mysqli-connect.php
Merci pour ton aide, mais depuis que j'ai commencé ce post j'ai maintenant un autre problème.
La page d’accueil ne s'ouvre plus si on rentre shopeco.fr sous chrome, mon .htaccess :
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^shopeco.fr$
RewriteRule ^(.*) http://www.shopeco.fr/$1 [QSA,L,R=301]
SetEnv PHP_VER 5
SetEnv REGISTER_GLOBALS 0
errorDocument 401 http://www.shopeco.fr/401.php
errorDocument 403 http://www.shopeco.fr/403.php
errorDocument 404 http://www.shopeco.fr/404.php
errorDocument 406 http://www.shopeco.fr/406.php
errorDocument 500 http://www.shopeco.fr/500.php
errorDocument 503 http://www.shopeco.fr/503.php
Options -Indexes
RedirectPermanent /index.html http://www.shopeco.fr/index.php
RedirectPermanent /index.htm http://www.shopeco.fr/index.php
SetEnv MAGIC_QUOTES 0
> sous google Chrome, quand je rentre www.shopeco.fr , j'arrive sous shopeco.fr/www/index.php cela semble fonctionner<br /><br />vide le cache de ton navigateur<br /><br />> Voilà mon code .htaccess<br /><br />pas ce que je t'ai donné:<br />```text<br />RewriteEngine On<br /><br />RewriteEngine On<br /><br /> ## no-www -> www<br />RewriteCond %{HTTP_HOST} !^www\.<br />RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]<br /><br /> ## http -> https<br />RewriteCond %{HTTPS} off<br />RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]<br /><br /><br />Options -Indexes<br />errorDocument 401 /401.php<br />errorDocument 403 /403.php<br />errorDocument 404 /404.php<br />errorDocument 406 /406.php<br />errorDocument 500 /500.php<br />errorDocument 503 /503.php<br />```<br /><br />> J'ai bien tenté de passer au PHP 7.3<br /><br />pour commencer prends le `.ovhconfig` indiqué en utilisant 5.4<br />une fois stabilise, il faudra tester 5.6, ..., 7.3<br />php7.4 est stable aujourd'hui<br />sur php.net tu verras dans les changelogs les corrections à prévoir
Merci beaucoup,
Pour l'instant le site ne fonctionne correctement que en php 5.4 , au dessus 5.6 ou 5.5 j'ai des problème d'accentuation sur mon texte.
En tout cas la page accueil remarche, c'est déjà bien. C'était bêtement un problème de cache.
> j'ai des problème d'accentuation sur mon texte.
tu dois définir le charset pour la connexion à la base?
sur les versions récentes, ça doit être utf8, spécifier latin1?
mais tu aurais avantages à tout passer vite en utf8, c'est bien plus simple après
Merci beaucoup Kyodev pour ton aide, je suis maintenant en PHP 5.6
J'ai encore un petit bug que je viens de découvrir.
Si j'ai un accent dans une requête, par exemple "é" ca ne fonctionne plus pour trouver le produit ou la catégorie qui contient aussi un "é" … en changeant la requête pour écrire sans accent, j'ai vu que cela marche, mais il doit y avoir plus simple, non ? Car j'ai beaucoup de requête sur beaucoup de page..
Je commence à me demander si j'ai choisi le bon UTF,
il y en avait tellement.. J'ai pris UTF8 general ci.
```text
wp db query "SHOW CHARACTER SET;" | grep utf8_general
| Charset | Description | Default collation | Maxlen |
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
```
utf8_general_ci c'est la collation, le classement
tu me conseilles utf8_unicode_ci ?
je ne sais pas de quoi tu parles
`utf8`: alors pas défaut ça sera _utf8_general_ci _,
généralement, tu laisses comme ça, collation vide, non remplie
Merci, pas de problème.
Je vais régler le problème en enlevant les accents dans les requêtes.
je ne sais plus où on en est, mais les accents c'est sans aucuns soucis en utf8, c'est fini ce temps là
J'essaye de passer à PHP 7.0<br />j'ai deux erreurs sur une page test de mon site, une page avec juste des résultats de ma base de donnée qui s'affichent, pas de moteur de recherche pour l'instant.<br /><br />Notice: Undefined variable: mysqli in /wwwwwww.php on line 53<br /><br />Fatal error: Uncaught Error: Call to a member function query() on null in /wwwwwwwwww.php:53 Stack trace: #0 {main} thrown in /wwwwwwwwww.php on line 53<br /><br /><br />mon code est le suivant :<br /><br /> echo "Connected successfully";<br /> $strSQL = "SELECT * FROM xxxxxxxxxxx WHERE cat LIKE '%Epicerie%' ORDER BY nom ASC limit 0,50";<br /> // Execute the query (the recordset $rs contains the result)<br /> mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] ) : mixed;<br /> // Loop the recordset $rs<br /> while($row = mysqli_fetch_array($rs)) {<br /> // Name of the person<br /> $strName1 = $row['nom'];<br /> $strName2 = $row['prix'];<br /> $strImg = $row['img'];<br /> // Create a link to person.php with the id-value in the URL<br /> $strLink = "produit_alimentation.php?id=" . $row[produit_alimentation.php?id=" . $row[produit_alimentation.php?id=" . $row[<table style="\"width: 100%\" border="\"0\" cellpadding="\"2\" cellspacing="\"2\"><tbody><tr><td style="\"width: 150px; height: 150px; background-color: rgb(255, 255, 255);\">" . $strLink . "</td><td> </td><td style="\"text-align: left; padding: 10px; background-color: rgb(255, 255, 255);\">" . $strLink2 . "</td><td> </td><td style="\"text-align: center; background-color: rgb(250, 250, 250); height: 150px; width: 150px;\">" . $strLink3 . "</td></tr></tbody></table>";<br /> }<br /> // Close the database connection<br /> mysqli_close();<br /> ?>
> J'essaye de passer à PHP 7.0
mais c'est déjà périmé…
déjà dit, chez Ovh 7.3
Mais c'est qu'une étape, je veux enchaîner sur 7.3. C'est mieux de passer directement à 7.3 ?