Instructions pour générer le site de Bauloy (Ph. Dalleur)
On utilise OpenElement, qui est d'une complexité moyenne et simple pour les site de peu de pages.
Voir https://blog.lws-hosting.com/creation-de-sites-web/open-element-logiciel-de-creation-de-site-web-gratuit-et-simple
Remarques et propositions d'améliorations
a. Site sécurisé
Si l'on veut mettre tout en site sécurisé, pour les serveurs Apache, il suffit introduire un script dans les .htaccess typiques de Apache.
Étapes:
1- Obtenir l'installation d'un certificat SSL par l'hébergeur (one.com). C'est essentiel, sans cela la redirection de http vers https produit presque toujours une boucle infinie
de redirection.
2- Rediriger les requêtes http vers https
Onglet: Projet
Bouton: htaccess
Bouton: Ajouter une commande
Sélectionner: Script libre
Ajoutez le script suivant:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Note: Le changement ne s'applique qu'après publication du site.
Attention! tous les liens externes/internes doivent être en https !! Si vous avez le moindre lien en http et non en https, c'est fini le cadenas vert, et la page est non sécurisée.
b. Optimiser recherche par Google.
On peut avoir une recherche de Google sur plusieurs pages, si on met un titre à chaque page.
On peut utiliser aussi les htaccess: (cf. https://www.semrush.com/blog/301-redirects/ )
Redirect a Single Page :
Redirect 301 /old-page/ /new-page/
Redirect An Entire Domain to Another
Redirect 301 / https://www.newwebsite.com/
Redirect An Entire Site to a Subfolder
Redirect 301 / https://www.website.com/subfolder/
Redirect A Subfolder to a Different Domain
Redirect 301 /subfolder https://www.nnewwebsite.com/
Redirect A Site Directory After a URL Change
Options +FollowSymLinks RewriteEngine On RewriteRule ^(.*)/old-category/(.*)$ $1/new-category/$2 [R,L]
Redirect From Non-WWW to WWW
RewriteEngine on
RewriteBase /
rewritecond %{http_host} ^website.com [nc]
rewriterule ^(.*)$ http://www.website.com/$1 [r=301,nc]
Redirect from HTTP to HTTPS (voir le point a.)
RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Redirect to Trailing-Slash URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.website.com/$1/ [R=301,L]
c. Langue du Google reCAPTCHA
Pour ne pas avoir la langue par défaut (anglais) en français et en néerlandais, il faut ajouter le code de langue ?hl=fr ou ?hl=nl respectivement après le premier appel au service Google par le script
<script type="text/javascript" src="https://www.google.com/recaptcha/api.js"></script>
On doit ainsi avoir pour le français :
<script type="text/javascript" src="https://www.google.com/recaptcha/api.js?hl=fr"></script>
OpenElement ne permet pas de faire ce changement, et il peut y avoir un bug dans les routines internes de production du fichier php contenant le recaptcha. Dans notre cas,
ce sont les fichiers contact.php, contact.en-us.php et contact.nl-be.php. Le script n'est pas directement accessible parce qu'il est placé haut dans le header. Pour éviter
le piratage du serveur mail, le fichier de la page contact est codé en php pour être exécuté sur le serveur internet et non sur l'ordinateur client comme le sont les autres pages,
index, chambres, admission, ... qui sont codées em HTML avec du javascript. Le script Google est produit par du code php par le serveur, et y ajouter hl=fr ne change pas
la langue du recaptcha.
On doit donc d'abord télécharger les fichiers contact.php sur le serveur par upload ftp. openElement fait cela automatiquement lorsque l'on publie les
changements sur Internet (voir le menu de l'onglet 'Projet'). Les fichiers contact.php produits par le client ne sont pas exactement les mêmes que ceux publiés sur le serveur,
parce que openElement ajoute systématiquement un script php avant la page html dans le fichier. Ce script php sera exécuté par le serveur pour produire un fichier contact
à la demande et sécurisé, lorsque quelqu'un visite cette page.
Ainsi, les fichiers contact.php du client ne peuvent être utilisés pour ajouter le code de langue fr ou nl. Il faut faire un download ftp pour changer les fichiers contact.php, contact.en-us.php et
contact.nl-be.php. J'ai placé un script Powershell ContactrecaptchaLang.ps1 dans le répertoire de travail XLangueRecaptcha. Le contenu de ce répertoire n'est pas mis à jour automatiqument par la publication du Projet. Ce script est lancé par la commande ContactCaptchaLang.cmd. Il télécharge les fichiers contact par ftp, puis leur ajoute le tag linguistique adéquat et les remets sur le serveur (upload par ftp, sans utiliser l'application FTP intégrée dans OpenElement qui risque d'effacer les nouveaux fichiers contact).
d. Fonctions PHP éliminées depuis la version 8.0.
Magic Quotes is now off by default (and removed in PHP v8), get_magic_quotes_runtime() and get_magic_quotes_gpc() are useless ever since PHP 5.4.0 and deprecated in the PHP version 7.4.*.
Dans le fichier WEFiles/WESendMail-v210.php qui envoie les données de contact avec le recaptcha de Google, il faut éliminer les fonctions PHP qui ont été éliminées depuis la version 8 de PHP. Si les fonctions Magic Quotes sont encore présentes dans les fichiers contact.*.php, il faut les éliminer (par exemple les routines suivantes aux environs de la ligne 30 des fichiers php) :
// consider magic quotes:
if (get_magic_quotes_runtime()) set_magic_quotes_runtime(false);
if (get_magic_quotes_gpc()) {
// remove slashes before apostrophes etc.
foreach($param as $key=>$value) {
if (is_array($value)) { // value is an array, not just string (happens if attribut name contains [])
foreach($value as $vkey=>$vv) $param[$key][$vkey] = stripslashes($param[$key][$vkey]);
} else
$param[$key] = stripslashes($param[$key]); // remove slashes before apostrophes etc.
}
}
Ph. Dalleur