Articles

Activité récente par Euro Web Page Ltd


Web HTML en tant que PHP

Analyser des pages Web HTML en tant que PHP à l'aide d'un fichier HTACCESS

Il est parfois nécessaire d'analyser des pages Web HTML en tant que PHP. Supposons que vous avez des pages Web HTML plus anciennes et que vous devez ajouter des fonctionnalités supplémentaires qui ne peuvent être obtenues que par un langage de programmation tel que PHP. Voulez-vous modifier chaque page Web manuellement et ajouter du code PHP? Cela semble peu pratique et monotone. Pour vous débarrasser de cet exercice, vous pouvez analyser les pages Web HTML en tant que PHP à l'aide du fichier .htacccess. Tout ce que vous avez à faire est de localiser le fichier .htaccess , d’ajouter l’une des lignes suivantes en fonction de votre configuration et d’enregistrer le fichier. 

Si votre serveur Web utilise suPHP, ajoutez la ligne suivante dans .httaccess.

 

AddHandler x-httpd-php .html .htm
OR
AddType application/x-httpd-php .html .htm
 

Si apache exécute php en tant que CGI, utilisez ensuite.

 
AddHandler application/x-httpd-php5 .html .htm
 

Si votre serveur utilise PHP5, essayez de suivre. 

 

AddType application/x-httpd-php5 .html .htm
OR
AddHandler application/x-httpd-php5 .html .htm
 

Si rien ne fonctionne, essayez l'une des solutions suivantes.

 
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html
<FilesMatch "\.html$">
ForceType application/x-httpd-php
</FilesMatch>

AddHandler fcgid-script .html
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html
Options +ExecCGI
AddType application/x-httpd-php .php .html
AddHandler x-httpd-php5 .php .html
 

 

 


Afficher les fichiers d un dossier en PHP

Tout le contenu sans exception

//Lister tout

$scandir = scandir("./nomDossier");

foreach($scandir as $fichier){

    echo "$fichier";

}

Pour afficher ce que l'on veux ( 3 exemples)

// "./" représente le dossier actuel où est exécuté le script, par exemple pour accéder au dossier "monDossier", mettez "./monDossier"

// vous pouvez également aller dans des sous répertoire en mettant "../" au lieu de "./"

$scandir = scandir("./");

 

//Lister toutes images ayant les extensions jpg, jpeg, png, gif, bmp et tif

foreach($scandir as $fichier){

    if(preg_match("#\.(jpg|jpeg|png|gif|bmp|tif)$#",strtolower($fichier))){

        //on passe tout le nom du fichier en caractères minuscules, y compris l'extension

        //la preg_match définie: \.(jpg|jpeg|png|gif|bmp|tif)$

        //commence par un point (.) (doit être échappé avec anti-slash \ car le point veut dire "tous les caractères" sinon)

        //(|) parenthèses avec des barres obliques dit "ou" (plusieurs possibilités)

        //le $ dit que ce doit se trouver à la fin du nom du fichier, par exemple un fichier nommé "monFichier.jpg.php" ne sera pas accepté car il ne se termine pas par .jpg, ou .jpeg ou .png ou...

        echo "$fichier";

    }

}

 

//Lister tous les fichiers et tous les dossiers, sauf le chemin vers le dossier actuel et le chemin vers le sous dossier

foreach($scandir as $fichier){

    if(is_dir($fichier) and $fichier != '.' and $fichier != '..'){

        //si c'est un dossier (PHP affiche en tant que dossier: le dossier actuel et le sous-dossier, qui se présente sous la forme de points: "." (1 point) pour le lien du dossier actuel et ".." (2 points) pour le lien vers le sous-dossier

        echo "$fichier";

    }

}

 

//Lister tous les fichier comportant l'extension .php

foreach($scandir as $fichier){

    if(substr(strtolower($fichier),-4,4)==".php"){

        //substr permet de prendre une seule partie de ce qu'on lui donne, en l’occurrence, on demande de prendre seulement 4 caractères en partant de -4, ce qui donne les 4 derniers caractères

        //exemple avec une extension plus grande:

        //if(substr(strtolower($fichier),-5,5)==".html"){

        echo "$fichier";

    }

}

 

 


Table de couleurs HTML

Table de couleurs HTML

https://seoproject.eu/ewp/color/


Recupérer l adresse IP dun visiteur

Fonction complète

La fonction ci-dessous est plus complète et permet d'obtenir l'IP réelle du visiteur.

 

Seule limite, si l'utilisateur passe par un proxy anonyme la fonction retournera l'adresse IP du proxy.

Ensuite, pour afficher cette fonction il faut utiliser un "echo".


Comment activer la compression gzip dans Apache sur le serveur Plesk?

Question

Comment activer la compression gzip dans Apache?

Activer le serveur gzip à l’aide de la connexion SSH

  1. Assurez-vous que ce module mod_deflate est activé dans apache:

    # httpd -M | grep deflate
    deflate_module (shared)

  2. Créer un fichier deflate.conf dans /etc/httpd/conf.d:

    # vi /etc/httpd/conf.d/deflate.conf

  3. Ajoutez ce qui suit dans le fichier:

    <IfModule mod_deflate.c> 
    # Compress HTML, CSS, JavaScript, Text, XML and fonts 
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
    AddOutputFilterByType DEFLATE application/x-font
    AddOutputFilterByType DEFLATE application/x-font-opentype
    AddOutputFilterByType DEFLATE application/x-font-otf
    AddOutputFilterByType DEFLATE application/x-font-truetype
    AddOutputFilterByType DEFLATE application/x-font-ttf
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE font/opentype
    AddOutputFilterByType DEFLATE font/otf
    AddOutputFilterByType DEFLATE font/ttf
    AddOutputFilterByType DEFLATE image/svg+xml
    AddOutputFilterByType DEFLATE image/x-icon
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/xml
    # Remove browser bugs (only needed for really old browsers)
    BrowserMatch ^Mozilla/4 gzip-only-text/html 
    BrowserMatch ^Mozilla/4.0[678] no-gzip 
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    Header append Vary User-Agent
    </IfModule>

  4. Remarque Dans le cas du système d'exploitation Centos, si le serveur dispose d'Apache 2.4 (httpd-2.4), le module suivant doit être activé:

    # grep -ir "mod_filter.so" /etc/httpd/conf.modules.d/00-base.conf
    LoadModule filter_module modules/mod_filter.so

    Sous Debian et Ubuntu, vérifiez que le  module de filtrage  est activé:

    # apachectl -M | grep filter
    filter_module (shared)

  5. Redémarrez Apache:

    # service httpd restart

Note: On Debian and Ubuntu the service is named apache2 instead of httpd, the list of all modules is called using apache2ctl utility and the path for deflate.conf file is /etc/apache2/mods-available/ instead of /etc/httpd/conf.d/


Redirection php

Rediriger une page en php

Et dans  .htaccess

 

(avec l'option [R], cela ne fonctionnait pas ...)


La balise rel=canonical en PHP

La balise canonical

Elle se place dans la section <head> et à la forme <link rel="canonical" href="url de la page" />

Par exemple, le lien sur cette page est:

Il peut être produit automatiquement en PHP avec ce code:

En remplaçant https://votre-site.eu par le domaine de votre site.

Un code générique

Si votre serveur n'est pas configuré pour reconnaître la variable PHP_SELF, vous pouvez aussi essayer ce code, plus long:

Ainsi le même code pourra être utilisé et placé automatiquement sur toutes vos pages.

Utile pour éviter le duplicate content laux CMS qui peuvent accéder aux pages selon différentes options, comme le détaille l'article du blog de Google:


Comment utiliser les balises hreflang et canoniques ensemble

Hreflang et canoniques ensemble

Lorsque vous utilisez des balises hreflang ainsi que des balises canoniques sur votre site Web, vous devez faire attention à ne pas envoyer de signaux confus à Google. Voici comment implémenter les tags hreflang lorsque vous avez déjà une solution de tag canonique sur votre site Web.


Les balises hreflang et canonical ont des fonctions similaires: elles suggèrent à Google les URL à indexer. Si votre site Web contient déjà une solution de balises canoniques demandant à Google de ne pas implémenter certaines URL et que vous ajoutez ensuite des balises hreflang à toutes vos URL, vous allez confondre Google. Vous allez demander à Google d’indexer et de ne pas indexer certaines URL en même temps.

Que veulent les URL avec des balises canoniques?

Une URL comportant une balise canonique pointant vers une autre URL indique à Google:

«Hey Google, comment ça va? Je ne veux pas être indexé. Mais tu peux indexer ma soeur jumelle ici à la place de moi?

Une URL comportant une balise canonique pointant vers elle-même indique à Google:

"Howdy Google, s'il vous plaît indexez-moi et pas mes frères jumeaux stupides."

Maintenant, vous devez vous assurer que vos URL contenant des balises canoniques savent toujours ce qu’elles veulent après avoir implémenté hreflang sur votre site Web:

Que veulent les URL avec hreflang?

Une URL avec des implémentations hreflang correctement implémentées pourrait indiquer à Google:

“Bonjour Google, comment ça va? Je parle français et je veux être répertorié. Voici mes cousins d'autres pays. Pouvez-vous les indexer aussi?

Ainsi, les URL avec des annotations hreflang veulent toujours être indexées et veulent toujours que des URL supplémentaires (leurs équivalents dans d'autres versions de langue et de pays) soient indexées avec elles.

Que veulent les URL avec des balises canoniques et des annotations hreflang?

Voyons maintenant ce qu’une URL avec une balise canonique pointant sur elle-même et sur des annotations hreflang indique à Google:

“Hola Google, qué tal? Je suis le plus mature de mes frères jumeaux et je veux être répertorié. Je parle espagnol et ce sont mes cousins d'autres pays. Pouvez-vous les indexer aussi?

Ceci est une instruction très claire et facile à suivre pour Google. Mais que se passe-t-il si l'URL a une balise canonique pointant vers une autre URL et des annotations hreflang en même temps?

“Guten Tag Google, wie geht's? Je ne veux pas être indexé, veuillez plutôt indexer mon frère jumeau. Je parle allemand, alors s'il vous plait, indexez-moi et voici mes cousins d'autres pays. Merci de les indexer aussi.

Et puis Google dira:

«Quel dingue! Voyons ce que ses cousins disent.

Et puis, Google visitera les autres URL des annotations hreflang et entendra une chorale de:

“Buon giorno,は, добрый день ! Nous ne voulons pas être indexés, veuillez indexer nos soeurs jumelles à la place de nous. Mais nous voulons vraiment être indexés, alors s'il vous plaît? Et s'il vous plaît, s'il vous plaît, indexez-nous tous parce que nous sommes tous des cousinsde différents pays. ”

Et puis Google dira:

"Tais-toi! Je ne vous écoute pas et je vais juste trouver qui indexer moi-même. "

Si vous envoyez des signaux confus, Google ignorera vos instructions. Assurez-vous donc que vos URLs savent ce qu’elles veulent!

Conclusion

Si vous utilisez une solution de balises canoniques sur votre site Web, assurez-vous que les URL comportant une balise canonique pointant vers une autre URL ne reçoivent pas d'annotations hreflang. Les annotations hreflang conviennent pour les URL pointant sur une balise canonique et pour les URL ne comportant pas de balise canonique.

Exception: URL mobiles et AMP

Avec l'annonce de l'index mobile-first, Google a modifié ses recommandations pour hreflang sur les URL mobiles. Dans le passé, il était clair que les URL mobiles devaient avoir des balises canoniques pointant vers leurs équivalents de bureau et ne devaient donc pas recevoir d'annotations hreflang. Maintenant, la nouvelle recommandation consiste à ajouter hreflang aux URL de mobile et aux URL de bureau:

Oui, nos recommandations pour hreflang sont les suivantes: mobile à mobile et de bureau à bureau.
 

En tant que lecteur de ce billet de blog, vous vous demandez probablement s’il est logique de garder les balises canoniques pointant des URL mobiles vers leurs équivalents de bureau.

Une URL de mobile qui pointe vers sa version de bureau via une balise canonique et qui comporte des annotations hreflang en même temps envoie clairement des signaux contradictoires, en particulier lorsque l’index du premier mobile est devenu réalité.

Voyons combien de temps Google s'en tient à la recommandation de faire en sorte que les balises canoniques pointent des URL de mobile aux URL de bureau.

Selon cette source , la même nouvelle recommandation est valable pour les pages AMP: balises Canonical des versions AMP vers les versions de bureau et hreflang entre les pages AMP et entre les pages de bureau.

 


Rel= alternate

rel="alternate" et multiple TLDs

Nous avons plusieurs domaines de premier niveau (.com et .eu) et utilisons l'attribut rel = "alternate" pour confirmer à Google quel site / quelle langue doit être servi dans quelle région:

 

En général, en termes de référencement, il est préférable de tout héberger sous le même toit, mais si vous souhaitez fournir une approche plus personnelle en utilisant des domaines de premier niveau spécifiques à un pays, vous pouvez utiliser l’option alternative et hreflang.

Si votre contenu est uniquement en anglais, vous devez spécifier en_XXxx correspondant au code ISO du pays.

Par exemple, si vous souhaitez cibler les Anglais en Espagne sur votre votre-site.es domaine, vous utiliserez alors: <link rel="alternate" href="https://votre-site.es/" hreflang="en-ES" />.

Vous voudrez peut-être servir plusieurs versions anglaises dans divers pays anglais tels que AU, ZA, UK, etc., cela ressemblerait à ceci:

 

<link rel="alternate" href="https://votre-site.ie/" hreflang="en-ie" />
<link rel="alternate" href="https://votre-site.ca/" hreflang="en-ca" />
<link rel="alternate" href="https://votre-site.au/" hreflang="en-au" />
<link rel="alternate" href="https://votre-site.com/" hreflang="en" />

 

La dernière ci-dessus est destinée aux utilisateurs anglais non situés en Australie, au Canada et en Irlande. Vous pouvez en savoir plus sur la page d'aide de Google .

Envisagez d'ajouter une page de substitution pour les langues sans correspondance, notamment pour les outils de sélection de la langue ou du pays, ou pour les pages d'accueil redirigeant automatiquement l'internaute. Utilisez la valeur x-default :
<link rel="alternate" href="https://votre-site.eu/" hreflang="x-default" />

(n'oubliez pas de définir le ciblage géographique dans les outils pour les webmasters :-)


Bouton partager de facebook

Comment integrer,  un bouton SHARE de facebook sans passer par  Addthis ou autre?

Exemple :

<?php

$tmp = $_SERVER['REQUEST_URI'];

$title=urlencode($table[titre]);

$url=urlencode("https://votre-site.eu$tmp");

$summary=urlencode($table[developpement]);

$image=urlencode("https://votre-site.eu/Cat/picture1.png");

?>

<a style="float:right;" onclick="window.open('http://www.facebook.com/sharer.php?s=100&amp;p[title]=<?php echo $title;?>&amp;p[summary]=<?php echo $summary;?>&amp;p[url]=<?php echo $url; ?>&amp;&p[images][0]=<?php echo $image;?>', 'sharer', 'toolbar=0,status=0,width=620,height=280');" href="javascript: void(0)">

<img src="../pictures/share.png">

</a>


URL Rewrite

Comment mettre en place l’URL Rewriting

Si vous avez déjà un site dynamique en ligne, voici les étapes à suivre

  • Vérifier que votre hébergeur permet l’utilisation de l’URL Rewriting
  • Identifier les pages dynamiques dont l’URL comporte des paramètres, et choisir un nouveau schéma d’URL « propre »
  • Ecrire les règles de réécriture dans le fichier .htaccess adéquat.
  • Changer tous les liens vers chaque fichier dont l’URL a changé.
  • Mettre à jour votre site et vérifier que tout fonctionne.

Vérifier si l’URL Rewriting est compatible avec son hébergeur

Pour vérifier si le module mod_rewrite d’Apache est activé, il vous suffit de suivre les points suivants :

  1. Créez un répertoire nommé test que vous placerez à la racine de votre site (accessible via l’adresse https://www.votre-site.eu/test/.)
  2. Dans ce répertoire, créez un fichier PHP nommé test.php  (http://www.votre-site.eu/test/test.php) contenant uniquement les lignes suivantes :
    <html><head><title>Test</title></head><body>OK !</body></html>
  3. Dans ce répertoire, créez un fichier nommé .htaccess contenant les lignes suivantes (nous verrons plus loin leur signification) :
  4. Transférez ce répertoire et ces deux fichiers sur votre site, puis rendez-vous à l’adresse : https://www.votre-site.eu/test/

403 Laravel

Forbidden You don't have permission to access / on this server.

Erreur 403 - Forbidden

Créez et mettez ce fichier .htaccess dans votre dossier d'installation de laravel.


Reseaux de blogs prives PBN

Réseaux de blogs privés: un excellent moyen de sanctionner votre site

Le chroniqueur Kevin Rowe explique ce que sont les réseaux de blogs privés (PBN), comment les identifier et pourquoi vous devriez vous y tenir.

Vous avez peut-être déjà entendu parler des réseaux de blogs privés (PBN), mais vous n'êtes peut-être pas sûr de leur nature ou de la raison de leur utilisation. Une PBN est un réseau de sites Web utilisé pour créer des liens (et donc transférer une autorité) à un site Web unique dans le but de manipuler les classements des moteurs de recherche. Ce schéma est similaire à une molette de liens ou à une pyramide de liens, car il implique plusieurs sites Web différents, qui sont tous reliés entre eux ou à un site Web central.

Alors que ces types de stratagèmes étaient couramment utilisés il y a plusieurs années, les PBN sont désormais considérés comme une pure tactique de chapeau noir et doivent être évités à tout prix, car ils peuvent entraîner une perte de classement, voire une pénalité manuelle. Les PBN apportent généralement peu ou pas de valeur à long terme aux sites Web auxquels ils renvoient.

Google lutte depuis longtemps contre les PBN et les entreprises impliquées dans cette tactique louche en sont devenues un exemple au fil des ans. L'un de ces cas est le schéma de liaison JC Penney qui a été exposé en 2011 par le New York Times. Alors que Google devient plus intelligent et développe une meilleure technologie pour lutter contre les techniques de spam de lien, il est devenu de plus en plus difficile pour les SEO de black hat de réussir un PBN.

Comment identifier les réseaux de blogs privés

La clé pour identifier un PBN est l’empreinte intersite où la plupart des données techniques sur les sites sont identiques. Les anciens réseaux PBN reposaient sur la même adresse IP, partageaient les mêmes serveurs WHOIS, utilisaient les mêmes informations WHOIS ou utilisaient même le même contenu sur plusieurs sites.

Aujourd'hui, les PBN sont beaucoup plus sophistiqués et peuvent être plus difficiles à repérer pour les utilisateurs, car les sites couvrent différents secteurs, thèmes et présentations. Pour déterminer si un site fait partie d'un PBN - et par conséquent d'un site que vous devriez éviter comme la peste -, tenez compte des points suivants:

  • Hébergement  Sont-ils tous sur la même adresse IP? Vous pouvez utiliser SpyOnWeb.com ou des outils similaires pour identifier les sites hébergés sur un autre site.
  • Conception du site.  Les sites utilisent-ils tous un design, une navigation, un jeu de couleurs similaire?
  • Thèmes similaires.  Les thèmes WordPress ont parfois le nom du thème dans le code. Vérifiez le code source dans votre navigateur.
  • Propriété du site. Consultez la base de données WHOIS pour connaître les informations de contact du propriétaire des sites. Avoir des données WHOIS cachées est un drapeau rouge. Si tous les propriétaires de sites sont identiques, il est évident que les blogs sont connectés.
  • Dupliquer le contenu. Copiez un paragraphe dans la recherche Google pour voir si le contenu existe sur d'autres sites.
  • Profil Backlink. Vérifiez le profil des liens en amont dans Ahrefs ou Majestic (ce sont les plus grandes bases de données de liens) pour voir combien de liens se produisent entre les sites.
  • Images et vidéos. Les vidéos et les images étant difficiles et coûteuses à recréer, elles seront probablement dupliquées sur d'autres sites. Utilisez la recherche d'images ou la recherche vidéo dans Google pour trouver des morceaux similaires.

Un cadeau mort pour de nombreux PBN est d'avoir un profil de backlink similaire. Si plusieurs sites ont le même profil de lien ou s'ils lient tous à un même site plusieurs fois (en particulier lorsque cela semble excessif ou qu'il n'est pas pertinent), le site fait probablement partie d'un PBN - ou à tout le moins , vend des liens. L' algorithme Penguin de Google , qui fonctionne maintenant en temps réel dans le cadre de l'algorithme de classement principal, peut détecter ce type de stratagèmes et dévaloriser le classement de votre site Web. Dans certains cas, vous pourriez même vous retrouver avec une pénalité manuelle.

Cependant, le simple fait de posséder plusieurs sites Web différents ne signifie pas que vous êtes un réseau de blogs privé. Par exemple, les entreprises de médias possédant plusieurs sites et des liens vers tous les pieds de page Web n'auraient probablement pas à s'inquiéter d'être désignées PBN, à moins que les sites Web ne soient associés, qu'il existe des dizaines de liens dans le pied de page ou qu'ils le soient. liens vers des pages internes similaires à plusieurs reprises.

De plus, les PBN sont généralement des groupes de sites appartenant tous à une seule entreprise ou à une seule personne, mais des individus distincts travaillant ensemble pour se lier les uns aux autres pourraient également être considérés comme une PBN s'il existe une tendance à lier de manière répétée les mêmes sites ou pages à la fois. plusieurs groupes de sites Web.

Comment pouvez-vous protéger votre site des PBN?

Aucun consultant en référencement réputé ne recommandera les réseaux de blogs privés pour la création de liens ou l'augmentation du trafic sur le site Web. Malheureusement, votre site peut être impliqué dans un PBN sans que vous le sachiez, en particulier si vous externalisez vos activités de création de liens vers des tiers. L'achat de liens sur des sites comme Fiverr ou d'autres services peut mettre votre site en grave danger. Et si quelqu'un essaie de vous convaincre de participer à un échange de liens (c.-à-d. Des liens commerciaux avec eux), courez.

Une surveillance étroite des activités de renforcement des liens est essentielle. Renseignez-vous sur les pratiques que Google considère comme des schémas de liens et assurez-vous que toute personne responsable de la création de liens vers votre site respecte scrupuleusement les présentes instructions. tout constructeur de liens réputé doit accepter d'être transparent quant aux liens qu'il recherche pour vous.

Cela nécessitera quelques efforts de votre part, mais rappelez-vous: ce n'est pas parce que vous n'êtes pas au courant de ce qui se passe derrière le rideau que vous ne serez pas tenu responsable des conséquences.

Les meilleures pratiques finiront par gagner

Vous pourriez vous sentir frustré par les concurrents qui semblent utiliser des techniques de renforcement des liens spammy comme les PBN. Vous pouvez bien sûr les signaler via une plainte Webspam. Mais même si vous ne le faites pas, souvenez-vous que leur tactique de chapeau noir finira par les rattraper.

Tandis que votre concurrent compte sur un PBN pour obtenir des liens, votre entreprise peut concevoir des campagnes de renforcement des liens plus robustes, basées sur les meilleures pratiques, offrant une plus grande autonomie et qui ne sont pas mal vues par les moteurs de recherche. Ensuite, lorsque votre concurrent sera démantelé et rétrogradé, désindexé ou autrement pénalisé, votre site aura l'avantage.

Dans l’ensemble, les réseaux de blogs privés constituent une stratégie dangereuse et inacceptable de renforcement des liens. Un lien ne doit être indiqué que s'il apporte réellement une valeur à l'utilisateur. Dans le cas contraire, la visibilité dans les pages de résultats des moteurs de recherche peut être réduite, voire une pénalité manuelle.

Epargnez-vous et votre entreprise des maux de tête liés à la perte d'argent, de ressources et de temps, et concentrez-vous sur de meilleures tactiques de création de liens qui vous permettront d'obtenir des résultats sans conflit.


 

 


PHP pour générer la balise rel=canonical

Script PHP pour générer la balise rel=canonical

Par exemple, le lien sur cette page est:

< link rel="canonical" href="https://votre-site.eu/scripts/canonical.php" /> 

Il peut être produit automatiquement en PHP avec ce code:

< link rel="canonical" href="https://votre-site.eu<?php echo $_SERVER['PHP_SELF']; ?>" />

En remplaçant https://votre-site.eu par le domaine de votre site.


Limiter laffichage au nombre de caractere

 Un petit code en PHP

Pour limiter l'affichage au  nombre de caractères  d'une Url(comme exemple) il faut utilisé les regex.

$new = nl2br(stripslashes(trim($data['texte_news'])));
$new = preg_match('!^(.{30})!isU', $new, $capture);
$new = $capture[1].'... ';//les ... sont pour montrer qu'il y a une suite.

echo $new;


Les balises

 <!– … –>	Définit un commentaire
 <!DOCTYPE>	Définit le type du document
 <a>	Définit un lien
 <abbr>	Définit une abréviation
 <address>	Définit une adresse
 <area>	Définit une zone à l’intérieur d’une image
 <article>	Définit un article
 <aside>	Définit une partie latérale au contenu
 <audio>	Définit un fichier audio
 <b>	Texte en gras
 <base>	Définit une URL de base pour tous les liens de la page
 <bdo>	Définit la direction du texte
 <blockquote>	Définit une longue citation
 <body>	Définit le corps de la page
 <br>	Saut de ligne
 <button>	Définit un bouton cliquable
 <canvas>	Définit un graphique
 <caption>	Légende du tableau
 <cite>	Définit une citation
 <code>	Mise en forme d’un texte en code informatique
 <col>	Définit une colonne d’un tableau
 <colgroup>	Définit un groupe de colonne pour un tableau
 <command>	Définit un bouton de commande
 <datalist>	Définit une liste d’options
 <dd>	Définition d’un terme
 <del>	Définit un texte supprimé
 <details>	Définit les détails d’un élément
 <dfn>	Définition
 <div>	Définit un calque ou une section
 <dl>	Liste de définition
 <dt>	Définition d’un terme
 <em>	Mise en exergue d’un texte – italique
 <embed>	Définit un contenu extérieur (audio, vidéo …)
 <fieldset>	Regroupe plusieurs éléments d’un formulaire
 <figcaption>	Légende d’un groupe d’élément multimédia
 <figure>	Définit un groupe d’élément multimédia
 <footer>	Définit le bas d’un section ou d’une page
 <form>	Définit un formulaire
 <h1> to  <h6>	Définit un titre par degré importance de 1 à 6
 <head>	Définit l’en-tête d’un document
 <header>	Définit le haut d’une section ou d’une page
 <hgroup>	Regroupe les informations du haut d’une page ou section
 <hr>	Barre horizontale
 <html>	Définit un document html
 <i>	Texte en italique
 <iframe>	Introduit un page html dans une frame
 <img>	Définit une image
 <input>	Définit un champ
 <ins>	Définit un texte insérer
 <keygen>	Générateur de clé pour un formulaire
 <kbd>	Raccourcis ou touche du clavier
 <label>	Légende d’un groupe d’élément de formulaire
 <legend>	Titre d’un groupe d’élément d’un formulaire
 <li>	Élément d’une liste
 <link>	Définit les relations entre les documents
 <map>	Définit une carte
 <mark>	Mise en valeur d’un mot ou d’un texte – Texte marqué
 <math>	Définit une formule mathématique
 <menu>	Définit un menu en liste
 <meta>	Définit des informations relatives au document
 <meter>	Définit une unité de mesure
 <nav>	Définit un groupe de liens de navigation
 <noscript>	Définit une alternative au script non supporté
 <object>	Définit un objet du contenu extérieur multimédia
 <ol>	Définit une liste ordonné
 <optgroup>	Regroupe d’une liste d »option dans un formulaire
 <option>	Option d’une liste dans un formulaire
 <output>	Définit un type de sortie
 <p>	Définit un paragraphe
 <param>	Définit les paramètres d’un objet
 <pre>	Texte pré-formaté
 <progress>	Définit une progression
 <q>	Définit une courte citation
 <rp>	Annotation ruby si le script n’est pas supporté
 <rt>	Annotation ruby d’explication
 <ruby>	Définit une annotation en ruby
 <samp>	Définit un échantillon de code
 <script>	Définit un script
 <section>	Définit une section
 <select>	Définit une liste sélectionnable
 <small>	Minimise l’importance d’un texte
 <source>	Définit la source d’un contenu multimédia
 <span>	Définit une section de type inline
 <strong>	Mise en exergue d’un texte – Texte en Gras
 <style>	Définit un style CSS
 <sub>	Mise en indice d’un texte
 <summary>	Définit l’en-tête des détails d’un document ou section
 <sup>	Mise en exposant d’un texte
 <svg>	Définit une image vectorielle
 <table>	Définit un tableau
 <tbody>	Définit le corps d’un tableau
 <td>	Définit une cellule d’un tableau
 <textarea>	Définit une zone de texte
 <tfoot>	Définit le bas d’un tableau
 <th>	Définit une cellule d’en-tête d’un tableau
 <thead>	Définit le haut d’un tableau
 <time>	Définit une unité de temps
 <title>	Définit le titre d’un document
 <tr>	Définit une ligne de tableau
 <track>	Définit une unité de temps pour les éléments  <audio> et  <video>.
 <ul>	Définit une liste non-ordonné
 <var>	Définit une variable
 <video>	Définit une vidéo
 <wbr>	Définit un possible retour à la ligne

HTML - La balise PRE

Afficher du code ET NON l'interprété sur une page web.

Exemple balise PRE

Dans la balise <pre> .. ici .. </pre> il faut remplacer les " < " par " &lt; " et les " > " par " &gt; "

Exemple d'écriture

&lt;!DOCTYPE html &gt; &lt;html&gt;

Résultat

<!DOCTYPE html> <html>

Pour le CSS

<style> pre { white-space: pre-wrap; overflow-x: auto; color: #F60; background: #E6E6E6; padding-left: 25px; font-size: 16px; } code { padding: 12px; background: #f5f5f5; } </style>