Nom de page du serveur de pages incommensurable. Tableau superglobal $_SERVER. Récupération de la variable d'environnement HTTP_X_FORWARDED_FOR

L'encodage des noms des pages MediaWiki est un sujet complexe. Les mots magiques MediaWiki PAGENAME, PAGENAMEE et urlencode ont des implémentations distinctes, chacune avec ses propres particularités.

Un nom de page MediaWiki peut avoir un espace de début mais pas d'espace de fin. Les caractères ASCII qui ne sont pas autorisés dans les noms de pages MediaWiki sont les trois types de crochets, le signe pointu, le trait de soulignement et la barre verticale, ainsi que tous les caractères de contrôle (y compris les tabulations et les nouvelles lignes).

# < > _ { | } Notez que le trait de soulignement n'est pas vraiment interdit, mais est traité comme un espace sans distinction dans les noms de pages MediaWiki, donc "A_B" et "AB" font référence exactement au même nom de page (les pages seront créées, recherchées et affichées (avec leur titre) en utilisant des espaces, jamais en utilisant des traits de soulignement).

Cet article les appellera « caractères de nom de page non autorisés ». Pour plus de clarté, nous présenterons d'autres valeurs ASCII 7 bits pour les caractères sous la forme d'encodage de style URL de forme pourcentage-hexadécimal appelé pourcentage-encodage .

Contenu

NOM DE LA PAGE [modifier]

Sinon, ces points sont laissés intacts par ((urlencode:...)) et ((anchorencode:...)) , mais les barres obliques peuvent être converties.

De plus, la séquence de deux barres obliques successives //) peut ne pas être acceptée dans les noms de pages, selon la configuration du wiki. Il s'agit généralement d'un indicateur que le nom est une URL, lorsqu'il est précédé d'un schéma d'URI valide (ou d'aucun schéma d'URI, ce qui signifie qu'un schéma d'URI par défaut "http:" ou "https:" sera utilisé, en fonction de préférence de l'utilisateur). Un schéma d'URI doit alors contenir deux points (:), mais MediaWiki ne reconnaît actuellement que les schémas d'URI où les deux points sont finaux, dans une liste restreinte ; sinon.

Par exemple sur ce wiki,

"((NOM DE LA PAGE|//www.site/))"

"//www.site/" .

Sur les sites Wikimédia, tels que site, les doubles barres obliques sont reconnues comme des URI, et la plupart des URI valides ne sont pas autorisés comme noms de page (si un schéma d'URI est présent, il peut être reconnu comme un espace de noms s'il a été configuré, sinon la page le nom tombera dans l'espace de noms principal du wiki) :

  • La création d'un lien vers ces noms de pages de type URI utilise :
    • [[ nom de la page dans double parenthèses| avec le texte affiché en option ]] .
  • Mais les liens vers la cible effective de l’URI utilisent soit :
    • [ URL-sans-espaces-dans- célibataire-supports avec le texte affiché en option ], ou
    • URI sans espaces(également affiché textuellement, mais le lien sera activé sous condition car il est soumis aux restrictions des schémas d'URI reconnus).

Donc sur ce wiki sur place, le code suivant

[]

crée de manière inattendue un lien direct vers l'URL externe, entouré de crochets simples textuels :

Les URI ne sont pas reconnus par le codage d'URL et le codage d'ancre (cela signifie que des URL complètes valides ne peuvent pas être créées en toute sécurité avec urlencode !).

Documentation

Échantillon (( Lorsque le nom de la page est)) est destiné à être utilisé dans d’autres modèles. Cela aide d'autres modèles à déterminer sur quelle page ils s'exécutent. Le modèle vérifie le nom de la page pour une correspondance selon le modèle spécifié ((Quand sur la page)).

Usage

Un modèle peut gérer plusieurs paramètres. La plupart des paramètres n'ont pas de nom spécifique car leurs noms sont utilisés pour introduire le modèle de recherche. Par exemple:

((Lorsque le nom de la page est | /doc = Texte de la page Doc | other = Texte des autres pages ))

Si le modèle est inclus sur la page "Template:Example/doc", le code ci-dessus renverra le texte de la page de documentation.

Texte de la page du document

Si le modèle est inclus sur une autre page dont le nom ne contient pas /doc, alors le code renverra le texte pour les pages restantes.

((Lorsque le nom de la page est| Utilisateur:Exemple/test = Texte pour "Utilisateur:Exemple/test".| Utilisateur : Exemple = Texte pour "Utilisateur : Exemple".| Discussion utilisateur : Exemple = Texte pour « Discussion utilisateur : Exemple ».| Utilisateur : Exemple/+ = Correspond à "Utilisateur : Exemple" et "Utilisateur : Exemple/test".| Exemple = Correspond à « Utilisateur : Exemple », « Discussion utilisateur : Exemple », « Modèle : Exemple » et ainsi de suite, mais pas à « Utilisateur : Exemple/quelque chose ».| User:Example/* = Correspond à "User:Example/something", mais pas à "User:Example".| Discussion de l'utilisateur : Exemple/* = Correspond à "Discussion de l'utilisateur : Exemple/quelque chose".| Exemple/* = Correspond à « Utilisateur : Exemple/quelque chose » et « Discussion utilisateur : Exemple/quelque chose ».

La comparaison est effectuée de haut en bas et l'option dans laquelle la correspondance s'est produite est renvoyée. Les mots « de haut en bas » désignent l'ordre des options ci-dessus, et non l'ordre des paramètres transmis au modèle. Le modèle n'a aucune restriction sur le nombre de paramètres pouvant être transmis, à l'exception des restrictions imposées par le serveur et le moteur MediaWiki.

La plupart des contrôles ne sont pas sensibles à la casse. Cependant, il semble que "/test" correspondra à "User:Example/test", mais pas à "User:Example/Test".

Les tests visant à faire correspondre une partie du nom d'une sous-page, telle que "/some*", présentent certaines limites. Voir section dédiée ci-dessous.

Il est permis de spécifier une valeur vide dans le paramètre de comparaison ; si le modèle correspond, la comparaison ultérieure s'arrête et le modèle renvoie une chaîne vide. Cela peut être utilisé aux fins suivantes :

((Lorsque le nom de la page est | /doc = | /sandbox = Texte du bac à sable | autre = Texte des autres pages))

Le code ci-dessus n'affichera rien si le modèle est appelé sur une page /doc, mais sur une page /sandbox, il renverra le texte de la page sandbox. Et sur d'autres pages, il sera affiché :

Texte du bac à sable

Et sur une autre page, cela renverra ceci :

Texte des autres pages

Noms de sous-pages partiels

Ce modèle peut également correspondre à une partie du nom de la sous-page. Par exemple:

((Lorsque le nom de la page est | /archiv* = Texte de la page d'archive | other = Texte des autres pages))

Sur la page « Utilisateur : Exemple/Archive 1 », le code ci-dessus renverra le texte des pages restantes :

Texte de la page d'archive

Le nom du paramètre de modèle de comparaison « /some* » ne doit pas contenir de lettres majuscules, mais la correspondance contiendra à la fois des lettres majuscules et minuscules dans la sous-page, comme « Utilisateur : Exemple/Quelque chose » et « Utilisateur : Exemple/quelque chose ».

La partie correspondante du nom de la page dans l’exemple peut comporter 4, 6 ou 8 caractères. La comparaison avec "/some*", "/someth*" et "/somethin*" fonctionne, mais l'utilisation de "/som*" ou "/somet*" ne fonctionne pas.

Tout d'abord, les échantillons longs sont comparés, par exemple, si les deux échantillons "somethin*" et "/some*" sont donnés et que la page actuelle s'appelle "User:Example/Something", alors le modèle renverra ce qui est spécifié dans le paramètre "/quelque chose*".

paramètre "page"

Pour tester et démontrer son fonctionnement, le modèle traite le paramètre de page. Par exemple:

((Lorsque le nom de la page est | /test = Texte des pages de test | autre = Texte des autres pages | page = Modèle : Exemple/test ))

Quel que soit le type de page sur lequel le code ci-dessus est utilisé, il renverra ceci :

Texte des pages de test

Le page Le paramètre fait que ce modèle se comporte exactement comme s’il se trouvait sur cette page. Il n'est pas nécessaire que le nom de la page soit une page existante.

Si le page Le paramètre est vide ou indéfini, le nom de la page courante détermine le résultat.

Vous pouvez faire en sorte que votre modèle comprenne également le page paramètre. Cela signifie que vous pouvez démontrer les différentes apparences de votre modèle dans la documentation de votre modèle. Alors faites comme ceci :

((Lorsque le nom de la page est | /test = Texte des pages de test | autre = Texte des autres pages | page = (((page|))) ))

Espace de noms correspondant

Ce modèle n'a pas de correspondance d'espace de noms. Si vous en avez besoin, combinez ce modèle avec l'un des modèles de détection d'espace de noms tels que. ((Lorsque sur la page du modèle)). Comme ça:

((Lorsque sur la page du modèle | ((Lorsque le nom de la page est | /doc = Texte de la page du document modèle. )) | }}

Ainsi sur la page "Utilisateur:Exemple/doc" le code ne retournera rien, mais sur la page "Modèle:Exemple/doc" il retournera :

Modèle : Lorsque vous êtes sur la page du modèle

Détails techniques

Ce modèle définit des pages supplémentaires même s'il est utilisé sur des pages dans un espace de noms pour lequel la création de pages supplémentaires est interdite. Cela fonctionne donc toujours dans tous les espaces de noms.

Voir aussi

Tableau superglobal $_SERVER

L'un des tableaux prédéfinis les plus importants est le tableau $_SERVER - l'interpréteur PHP y place les variables reçues du serveur. Sans ces variables, il est difficile d'organiser un support complet des applications Web. Vous trouverez ci-dessous une description des éléments les plus importants du tableau superglobal $_SERVER.

Commentaire

Vous pouvez afficher la liste complète des éléments du tableau $_SERVER soit en utilisant la fonction print_r(), qui imprime un dump du tableau, soit en utilisant la fonction phpinfo(), qui affiche des informations sur l'interpréteur PHP.

Élément $_SERVER["DOCUMENT_ROOT"]

L'élément $_SERVER["DOCUMENT_ROOT"] contient le chemin d'accès au répertoire racine du serveur ; si le script est exécuté dans un hôte virtuel, cet élément spécifie le chemin d'accès au répertoire racine de l'hôte virtuel. Ceux. dans le fichier de configuration httpd.conf hôte virtuel a une directive DocumentRoot définie sur "D:/main", l'élément $_SERVER["DOCUMENT_ROOT"] contiendra la valeur "D:main".

Élément $_SERVER["HTTP_ACCEPT"]

L'élément $_SERVER["HTTP_ACCEPT"] décrit les préférences de type de document du client. Le contenu de cet élément est récupéré à partir de l'en-tête HTTP Accept envoyé par le client au serveur. Le contenu de cet en-tête pourrait ressembler à ceci

image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*

L'en-tête Accept permet de spécifier le type de média que le client préfère recevoir en réponse à sa demande. Cet en-tête indique au serveur que la réponse est limitée à un petit ensemble de types préférés.

Le symbole * est utilisé pour regrouper les types dans une ligne multimédia. Par exemple, le symbole */* spécifie l'utilisation de tous les types et la notation type/* spécifie l'utilisation de tous les sous-types du type de type sélectionné.

Commentaire

Les types de médias sont séparés par des virgules.

Chaque série médiatique est également caractérisée par un ensemble de paramètres supplémentaires. L'un d'eux est ce que l'on appelle le coefficient de préférence relative q, qui prend respectivement des valeurs de 0 à 1, des types les moins préférés aux plus préférés.

Commentaire

L'utilisation de plusieurs paramètres q permet au client d'indiquer au serveur sa préférence relative pour un type de média particulier.

Par défaut, le paramètre q est 1. Il est également séparé du type de média par un point-virgule.

Exemple d'en-tête Accept :

Accepter : audio/* ; q=0,2, audio/basique Dans cet en-tête, le premier type est audio/*, qui regroupe tous les documents musicaux et se caractérise par un coefficient de préférence de 0,2. Le type audio/basic est indiqué séparé par des virgules, pour lequel le coefficient de préférence n'est pas précisé et prend la valeur par défautégal à un

. Citant la RFC2616, ce titre peut être interprété comme suit : « Je préfère le type audio/basique, mais je peux également envoyer des documents de tout autre type audio, si disponible, après avoir réduit le facteur de préférence de plus de 80 %. »

L’exemple est peut-être plus complexe.
Accepter : texte/plain ; q=0,5, texte/html,

Commentaire

texte/x-dvi ;

q=0,8, texte/x-c

Notez que l'élément $_SERVER["HTTP_ACCEPT"] contient exactement les mêmes informations, mais sans l'en-tête Accept initial.

Cet en-tête est interprété comme suit : Les types de documents text/html et text/x-c sont préférés, mais s'ils ne sont pas disponibles, alors le client faisant cette demande préférera text/x-dvi, et, si ce n'est pas disponible, il peut accepter le type text/ plain. Élément $_SERVER["HTTP_ACCEPT_LANGUAGE"] L'élément $_SERVER["HTTP_ACCEPT_LANGUAGE"] décrit les préférences linguistiques du client.

Accepter la langue : ru, en ;

q=0,7

Ce qui peut être interprété comme suit : le client préfère la langue russe, mais si elle n'est pas disponible, il s'engage à accepter les documents en anglais. L'élément $_SERVER["HTTP_ACCEPT_LANGUAGE"] contiendra exactement les mêmes informations, mais sans l'en-tête Accept-Language :

ru, fr; q=0,7

Le contenu de l'élément $_SERVER["HTTP_ACCEPT_LANGUAGE"] peut être utilisé pour déterminer la nationalité des visiteurs. Cependant, les résultats seront approximatifs, car de nombreux utilisateurs utilisent des versions anglaises des navigateurs, qui informeront le serveur que le visiteur préfère une seule langue : l'anglais.

Élément $_SERVER["HTTP_HOST"] L'élément $_SERVER["HTTP_HOST"] contient le nom du serveur, qui correspond généralement au nom de domaine du site situé sur le serveur. Généralement, le nom indiqué dans ce paramètre

correspond au nom $_SERVER["SERVER_NAME"]. Le paramètre contient uniquement le nom de domaine sans le nom du protocole (http://), c'est-à-dire

www.sofftime.ru

Élément $_SERVER["HTTP_REFERER"] L'élément $_SERVER["HTTP_REFERER"] contient l'adresse de la page à partir de laquelle le visiteur est venu cette page

. La transition doit être effectuée via un lien. Créons deux pages index.php et page.php.

page index.php "écho
"
;
Lien vers la page PHP
écho.
?>

$_SERVEUR["HTTP_REFERER"]

La page page.php aura un contenu similaire, mais le lien pointera vers la page index.php.

page index.php "écho
"
;
Page page.php écho.
écho.
?>

"Contenu de $_SERVER["HTTP_REFERER"] - "

Lors du passage d'une page à une autre, l'adresse de la page à partir de laquelle la transition a été effectuée sera affichée sous le lien.

Élément $_SERVER["HTTP_USER_AGENT"] L'élément $_SERVER["HTTP_USER_AGENT"] contient des informations sur le type et la version du navigateur et système opérateur

visiteur.

Commentaire

Voici un contenu typique de cette ligne : "Mozilla/4.0 (compatible ; MSIE 6.0 ; Windows NT 5.1)". La présence de la sous-chaîne « MSIE 6.0 » indique que le visiteur consulte la page à l'aide d'Internet Explorer version 6.0. La ligne « Windows NT 5.1 » indique que le système d'exploitation est Windows XP.

Si le visiteur utilise le navigateur Opera, le contenu de $_SERVER["HTTP_USER_AGENT"] pourrait ressembler à ceci : "Mozilla/4.0 (compatible ; MSIE 5.0 ; Windows 98) Opera 6.04 ". La sous-chaîne « MSIE 6.0 » est également présente ici, indiquant que Navigateur Opéra est compatible avec Navigateur Internet Explorer et utilise les mêmes bibliothèques dynamiques Windows. Par conséquent, lors de l’analyse de la chaîne renvoyée par le navigateur, vous devez garder à l’esprit que Internet Explorer

Commentaire

fait référence à une chaîne contenant la sous-chaîne « MSIE 6.0 » et ne contenant pas la sous-chaîne « Opera ». De plus, à partir de cette ligne, nous pouvons conclure que l'utilisateur utilise le système d'exploitation Windows 98.

L'agent utilisateur du navigateur Firefox pourrait ressembler à ceci : Mozilla/5.0 (Windows ; U ; Windows NT 5.1 ; en-US ; rv:1.8) Gecko/20051111 Firefox/1.5. Lorsque vous utilisez le navigateur Netscape, le contenu de l'élément $_SERVER["HTTP_USER_AGENT"] peut ressembler à ceci : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 Netscape/7.1" . L'appartenance à ce navigateur peut être déterminée par la présence de la sous-chaîne "Netscape". De plus, vous pouvez savoir que le visiteur accède à Internet en utilisant version d'exploitation

Linux, avec un noyau optimisé pour Pentium IV, situé dans le shell graphique X-Window. Ce mécanisme est pratique à utiliser pour collecter des informations statistiques, ce qui permet aux concepteurs d'optimiser les pages pour les navigateurs les plus courants.

Élément $_SERVER["REMOTE_ADDR"]

Commentaire

L'élément $_SERVER["REMOTE_ADDR"] contient l'adresse IP du client. Lors d'un test sur une machine locale, cette adresse sera égale à 127.0.0.1. Cependant, lors des tests sur le réseau, la variable renverra l'adresse IP du client ou du dernier serveur proxy via lequel le client a atteint le serveur. Si le client utilise un serveur proxy, vous pouvez connaître son adresse IP grâce à la variable d'environnement HTTP_X_FORWARDED_FOR dont la valeur peut être obtenue grâce à la fonction getenv(). Les serveurs proxy sont des serveurs intermédiaires spéciaux qui fournissent type spécial services : compression du trafic, encodage des données, adaptation à appareils mobiles

etc. Parmi les nombreux serveurs proxy, il existe des serveurs proxy dits anonymes, qui permettent de masquer la véritable adresse IP du client ; ces serveurs ne renvoient pas la variable d'environnement HTTP_X_FORWARDED_FOR.

Récupération de la variable d'environnement HTTP_X_FORWARDED_FOR
?>

echo getenv(HTTP_X_FORWARDED_FOR);

L'élément $_SERVER["SCRIPT_FILENAME"] contient chemin absolu au fichier depuis la racine du disque. Ainsi, si le serveur exécute le système d'exploitation Windows, alors ce chemin peut ressembler à ceci : « d:main estindex.php », c'est-à-dire le chemin est spécifié à partir du disque ; dans un système d'exploitation de type UNIX, le chemin est spécifié à partir du répertoire racine /, par exemple "/var/share/www/test/index.php".

Élément $_SERVER["SERVER_NAME"]

L'élément $_SERVER["SERVER_NAME"] contient le nom du serveur, qui correspond généralement au nom de domaine du site qui s'y trouve.

Par exemple,

www.softtime.ru

Le contenu de l'élément $_SERVER["SERVER_NAME"] est souvent le même que le contenu de l'élément $_SERVER["HTTP_HOST"]. En plus du nom du serveur, le tableau superglobal $_SERVER vous permet de connaître un certain nombre de paramètres du serveur, par exemple l'adresse IP du serveur, le port d'écoute, le serveur Web installé et la version du protocole HTTP. Ces informations sont placées respectivement dans les éléments $_SERVER["SERVER_ADDR"], $_SERVER["SERVER_PORT"], $_SERVER["SERVER_SOFTWARE"] et $_SERVER["SERVER_PROTOCOL"].

Vous trouverez ci-dessous un exemple utilisant ces éléments.
" ;
Page page.php Utilisation des éléments de tableau $_SERVER echo "Nom du serveur - " . $_SERVEUR["SERVEUR_NAME"]. "
" ;
"Adresse IP du serveur - "
" ;
. $_SERVER["SERVER_ADDR"]. "
" ;
Page page.php echo "Port du serveur - " . $_SERVER["SERVER_PORT"]. " echo "Serveur Web - " . $_SERVER["SERVER_SOFTWARE"]. "
" ;
?>

"Version du protocole HTTP - "

. $_SERVER["SERVER_PROTOCOL"]. "

Élément $_SERVER["REQUEST_METHOD"]

L'élément $_SERVER["REQUEST_METHOD"] contient la méthode de requête utilisée pour appeler le script : GET ou POST.

D'accord, la raison pour laquelle vous voyez à la fois la valeur pageName et l'URL dans vos rapports de pages est que vous avez deux appels à st() et qu'un seul d'entre eux a une valeur pour s.pageName . Vous avez indiqué la valeur de pageName pour éviter que la page ne soit comptée deux fois. Eh bien, cela se produit déjà parce que vous utilisez deux appels st(). Puisque vous ne spécifiez pas pageName dans le second, l'URL par défaut est.

La solution idéale est de restructurer votre code pour n'avoir qu'un seul appel à st() . Vous avez dit que vous travailliez avec un CMS. Idéalement, vous devriez donc utiliser le script s_code.js dans l'en-tête global. alors vous devriez avoir un appel st() dans le pied de page global. Vous pouvez également mettre mondial vars dans la section pied de page (ou dans s_code.js > s_doPlugins). Ensuite, entre ces deux, c'est là que vous placeriez n'importe quel code spécial sur la page. Il me semble que vous le faites déjà... mais il vous suffit de supprimer le premier appel à st() .

Si, pour une raison quelconque, vous ne parvenez pas à obtenir la solution idéale, vous devez plutôt utiliser s.tl() pour la deuxième demande. Pour utiliser s.tl(), vous feriez quelque chose comme ceci :

S.prop1="foo"; s.eVar1="bar"; s.events="event1"; s.linkTrackVars="prop1,eVar1,events"; s.linkTrackEvents="event1"; s.tl(true,"o", "description");

Fondamentalement, tous les accessoires, eVars et événements que vous souhaitez suivre dans l'appel s.tl doivent être déclarés dans linkTrackVars et linkTrackEvents .

NOTE. Vous devriez vraiment vous efforcer de trouver la solution parfaite. Ce n'est pas seulement le rapport de page qui peut surestimer. Tous les autres varnas que vous avez installés seront également gonflés. De plus, le modèle de paiement d'Adobe doit vous facturer pour chaque requête adressée à son serveur, de sorte que votre client n'appréciera probablement pas le fait que vous doublez votre facture en procédant ainsi.

La méthode s.tl n'est en aucun cas parfaite, mais elle est meilleure que ce que vous faites actuellement. car cela réduira l'inflation des rapports et les requêtes s.tl coûteront moins cher que les requêtes st.

En fonction de l'espace de noms et des paramètres, une barre oblique dans le nom de la page offre une fonctionnalité spéciale, voir fonctionnalité de sous-page .

Préfixes d'espace de noms [modifier]

De plus, la première partie du nom d'une page peut ne pas coïncider avec un préfixe d'espace de noms indépendant du projet qui est automatiquement converti en un autre. A titre d'exemple, le nom Projet : A-Kon sur Wikipédia n'est pas possible.

La première partie du nom d'une page peut coïncider avec un préfixe d'espace de noms qui n'est pas converti. Par exemple, il pourrait y avoir des articles dans Wikipédia anglais sur des livres appelés Wikipédia : La grande aventure et Discussion : Les secrets sont mauvais(mais seulement sans l'espace après les deux points). Cependant, dans ce cas, les pages se trouvent dans le mauvais espace de noms. Cela peut s'avérer gênant lors de la recherche ou de l'affichage d'une liste de pages. De plus, dans le second cas, il n’y a aucun lien vers une page de discussion sur le livre. (Comme expliqué ci-dessus, le nom de la deuxième page n'est pas possible, par exemple sur Wikipédia allemand : voir w:de:Talk : Les secrets sont mauvais).

Préfixes faisant référence à d'autres projets ou pseudo-espaces de noms[modifier]

Un nom de page ne peut pas commencer par un préfixe utilisé pour faire référence à un autre projet, y compris les codes de langue, par ex. "en:" (liste), ou l'un des pseudo-espaces de noms "Media:" et "Special:".

Ainsi par ex. un article sur l'album "Q: Are We Not Men? A: We Are Devo!" je ne peux pas avoir ce nom exact. Une tentative de créer le article, que ce soit par un lien Q : Ne sommes-nous pas des hommes ? R : Nous sommes Devo ! ou une URL http://en.wikipedia.org/wiki/Q:Are_We_Not_Men%3F_A:_We_Are_Devo%21 mène à Wikiquote.

En ce qui concerne l'utilisation du préfixe du projet lui-même, il n'y a pas de cohérence : un nom comme en:a ne peut pas être utilisé sur en: (essayez w:en:a et w:en:en:a), tandis que "Q: Are We Pas des hommes ? R : Nous sommes Devo ! » peut exister sur Wikiquote : q:Q : Are We Not Men ? R : Nous sommes Devo ! .

Longueur maximale du nom de page [modifier]

La longueur maximale du nom de page est de 255 octets (à l'exclusion du préfixe de l'espace de noms). Sachez que les caractères non-ASCII peuvent prendre jusqu'à quatre octets en codage UTF-8, donc le nombre total de caractères personnages que vous pouvez insérer dans un titre peut être inférieur à 255 selon la langue dans laquelle il se trouve.

Espaces vs. souligne [modifier]

Dans noms de pages, un espace vide équivaut à un trait de soulignement. Un espace vide est affiché dans le titre en grande police en haut de la page, les URL affichent un trait de soulignement. Voir également ci-dessous.

Sensibilité à la casse [modifier]

Actuellement, le premier caractère du nom de la page est la casse- dans sensible, sauf dans les Wiktionnaires suivants :

Cas où le premier caractère n'est pas sensible à la casse

La forme canonique est avec une majuscule.

Notez que dans le cas d'un préfixe qui n'est pas un espace de noms pour le logiciel, et dans le cas d'un deuxième préfixe, l'insensibilité à la casse ne s'applique pas au premier caractère après ce préfixe, par ex. Les liens Template:H:Interwiki et les liens Template:H:interwiki sont distingués.

Sensibilité à la casse de l'extension du nom de fichier d'une image[modifier]

Notez que même l'extension du nom de fichier d'une image est sensible à la casse : comparez image:Stop_sign_us.jpg et image:Stop_sign_us.JPG 748410449856

Espaces/traits de soulignement ignorés [modifier]

Espaces/traits de soulignement ignorés :

  • ceux à le début et fin d'un nom de page complète
  • ceux à la fin d'un préfixe d'espace de noms, avant les deux points
  • ceux après les deux points du préfixe de l'espace de noms
  • dupliquer des espaces consécutifs

Certains apparaissent dans l'étiquette du lien, par ex. [[___help__ :_ _template_ _]] devient ___help__ :_ _template_ _ , avec un lien vers Help:Template .

Cependant, un espace avant ou après un deux-points « normal » fait une différence, par ex.

et Guide de l'utilisateur MediaWiki : Présentation de l'édition et Guide de l'utilisateur MediaWiki : Présentation de l'édition se distinguent tous, car "Guide de l'utilisateur MediaWiki :" est un pseudo-espace de noms, pas un vrai. [modifier]

Codage des caractères

Un nom de page ne peut pas contenir par ex. %41, car il est automatiquement converti en caractère A, pour lequel %41 est le code. [[%41]] est rendu sous la forme . De même, %C3%80 est automatiquement converti en caractère À. [[%C3%80]] est rendu sous la forme . L'URL de la page est http://meta.wikipedia.org/wiki/%C3%80. On peut se demander quel est le vrai nom de la page, %C3%80 ou À (un utilisateur dira ce dernier), mais de toute façon il ne peut pas y avoir de pages distinctes avec ces noms. [modifier]

Forme canonique La balise d'inclusion pour une page inexistante affiche un lien avec la forme canonique du nom de la page : ((qwsazx)), ((:qwsazx)), ((project:qws azx)) give Template:Qwsazx , Qwsazx , Wikiquote :Qwszx ; comparer avec les liens ordinaires Template:qwsazx , qwsazx , project:qws azx ; ceux-ci fonctionnent comme des liens redirigés, par ex. [] ; dans ce cas, la conversion n'apparaît sur la page de référence qu'en pointant dessus : dans le pop-up et dans le barre d'état

(le cas échéant pour le navigateur) ; si la cible est une redirection et quelle est la cible finale, cela n'est pas du tout indiqué.

Une tentative d'inclure une page d'un autre projet entraîne simplement l'affichage du texte wiki, par ex. Modèle : Qwsazx ; les liens interwiki ordinaires ne montrent pas d'existence et n'affichent pas de forme canonique dans la boîte de survol ou la barre d'état : en:project:qwsazx . La même chose s'applique si le style de lien interwiki est utilisé pour un lien vers une page du même projet : m:project:qwsazx .

Une page de redirection enregistrée affiche la forme canonique de la cible, même si l'aperçu restitue le lien de la manière habituelle, à comparer avec l'aperçu de . [modifier]

Ordre alphabétique

!"#$%&"()*+,-./0123456789:;<=>?@
Nous avons ainsi la liste partielle suivante montrant l'ordre :
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_"
¡¢£¤¥¦§¨©ª«­®¯°±²³´µ ¸¹º»¼½¾¿
ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋ
ŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſ
ǺǻǼǽǾǿ΄΅Ά·ΈΉΊΌΎΏΐ
ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰ
αβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ

Notez en particulier que "Z" vient avant "a", et "z" avant "é". L'espace vide dans le nom d'une page est traité comme un trait de soulignement et se situe donc après les majuscules et avant les lettres minuscules. Cependant, un « espace vide » après le nom précède tout caractère. Parfois, un caractère spécial ressemble à une lettre normale, mais possède quand même un code spécial.

Nous avons donc l'ordre PC, PCX, PC Bruno, PCjr, Κύρια Σελίδα.

Variables PAGENAME et PAGENAMEE[modifier]

Dans localurl, ((PAGENAME)) doit être utilisé dans la première partie (car il est converti par localurl), ou ((PAGENAMEE)) dans la deuxième partie :

  • ((SERVER))((localurl:Special:Allpages|namespace=12&from=((PAGENAMEE)))) donne ici :

//site/w/index.php?title=Special:Allpages&namespace=12&from=Page_name

  • ((SERVER))((localurl:Special:Allpages/((PAGENAME))|namespace=12)) donne ici :

//site/w/index.php?title=Special:Allpages/Page_name&namespace=12

  • ((SERVER))((localurl:Special:Allpages|namespace=12&from=((PAGENAME)))) donne ici :

//site/w/index.php?title=Special:Allpages&namespace=12&from=Nom de la page (mauvais lien)

  • ((SERVER))((localurl:Special:Allpages/((PAGENAMEE))|namespace=12)) donne ici :

//en.wikiquote.org/w/index.php?title=Special:Allpages/Page_name&namespace=12 (fonctionne ici, le trait de soulignement, converti à partir d'un espace, n'est pas affecté par la deuxième conversion, mais il ne fonctionne pas avec des personnages).



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :