Jump to content

Manuel:$wgActionPaths

From mediawiki.org
This page is a translated version of the page Manual:$wgActionPaths and the translation is 100% complete.
URLs de serveur et chemins de fichiers: $wgActionPaths
Chemins pour les diverses actions utilisateur. Utilisé pour obtenir de 'jolies' URLs.
Introduit dans la version :1.5.0 (r7538)
Retiré dans la version :Encore utilisé
Valeurs autorisées :Non renseigné
Valeur par défaut :[]

Détails

Configurez Manuel:URL courte et assurez-vous d'abord qu'elles sont opérationnelles.

Pour donner de 'jolis' chemin d'URL pour les actions autres que les visualisations de page simple, ajoutez-les à ce tableau.

Par exemple :

$wgActionPaths['edit'] = "$wgScriptPath/edit/$1";

En plus de l'initialisation de cette variable, vous devez ajouter un script approprié ou une règle de réécriture serveur pour gérer ces URLs.

Exemples de configurations

Ces exemples incluent des fichiers .htaccess d'exemple pour les serveurs Apache utilisant mod_rewrite.

Les autres serveurs auront des manières différentes de réaliser les réécritures d'URL.

Chemins d'actions à partir de la racine

Ceci configure les chemins d'actions de la forme http://mywiki.example.com/edit/Cucumber etc.

LocalSettings.php
$actions = [
	'view',
	'edit',
	'watch',
	'unwatch',
	'delete',
	'revert',
	'rollback',
	'protect',
	'unprotect',
	'markpatrolled',
	'render',
	'submit',
	'history',
	'purge',
	'info',
];

foreach ( $actions as $action ) {
  $wgActionPaths[$action] = "/$action/$1";
}
$wgArticlePath = $wgActionPaths['view'];

Règles htaccess additionnelles

.htaccess
Assurez-vous de modifier « /w/index.php » vers l'endroit où vous avez installé MediaWiki
RewriteRule ^/([a-z]*)/(.*)$ %{DOCUMENT_ROOT}/w/index.php [L,QSA]

Action à la fin

Ceci configure les chemins d'actions de la forme http://mywiki.example.com/Cucumber/edit etc.

$actions = [
	'edit',
	'watch',
	'unwatch',
	'delete',
	'revert',
	'rollback',
	'protect',
	'unprotect',
	'markpatrolled',
	'render',
	'submit',
	'history',
	'purge',
	'info',
];

foreach ( $actions as $action ) {
  $wgActionPaths[$action] = "/$1/$action";
}
$wgActionPaths['view'] = "/$1";
$wgArticlePath = $wgActionPaths['view'];

Chemins d'actions non racine

Pour les réécritures standard de example.com/wiki/Main_Page vers example.com/wiki/view/Main_Page , utilisez la configuration ci-dessus et changez cette ligne pour inclure /wiki :

foreach ( $actions as $action ) {
  $wgActionPaths[$action] = "/wiki/$action/$1";
}

Pour l'affichage standard des urls de example.com/wiki/Main_Page, et les réécritures en example.com/wiki/edit/Main_Page

$actions = [
	'edit',
	'watch',
	'unwatch',
	'delete',
	'revert',
	'rollback',
	'protect',
	'unprotect',
	'markpatrolled',
	'render',
	'submit',
	'history',
	'purge',
	'info',
];

foreach ( $actions as $action ) {
  $wgActionPaths[$action] = "/wiki/$action/$1";
}
$wgActionPaths['view'] = "/wiki/$1";
$wgArticlePath = $wgActionPaths['view'];

Action à la fin

Pour l'affichage standard des urls de example.com/wiki/Main_Page, et les réécritures en example.com/wiki/Main_Page/edit

Vous ne pouvez pas avoir de sous-pages des pages principales qui s'appelleraient delete, edit, watch, unwatch, etc... à partir du tableau lorsqu'il est initialisé ainsi
$actions = [
	'view',
	'edit',
	'watch',
	'unwatch',
	'delete',
	'revert',
	'rollback',
	'protect',
	'unprotect',
	'markpatrolled',
	'render',
	'submit',
	'history',
	'purge',
	'info',
];

foreach ( $actions as $action ) {
  $wgActionPaths[$action] = "/wiki/$1/$action";
}
$wgActionPaths['view'] = "/wiki/$1";
$wgArticlePath = $wgActionPaths['view'];

Action virtuelle / répertoires

Ceci configure les URLs telles que http://mywiki.example.com/wiki/action/edit/Cucumber etc.

Pour réécrire la plupart[1] des actions vers un chemin spécifique, on peut effectuer les modifications suivantes dans LocalSettings.php  :

$actions = [
	'view',
	'edit',
	'watch',
	'unwatch',
	'delete',
	'revert',
	'rollback',
	'protect',
	'unprotect',
	'markpatrolled',
	'render',
	'submit',
	'history',
	'purge',
	'info',
];

foreach ( $actions as $action ) {
  $wgActionPaths[$action] = "$wgScriptPath/action/$action/$1";
}
$wgArticlePath = $wgActionPaths['view'];

Sous Apache, codez une règle de réécriture comme suit:

RewriteRule ^/action/([a-z]*)/(.*)$ /index.php [L,QSA]

Ceci transférera toutes les requêtes vers /action/actionword/title à index.php de MediaWiki qui analysera l'action et le titre en fonction de votre configuration de $wgActionPaths .

En configurant mod_negociation de Apache pour exécuter des scripts PHP tout en utilisant cette méthode, il faut faire attention à ne pas provoquer d' « erreurs 406 Not Acceptable » qui pourraient, dans certains cas, afficher une liste du répertoire; voyez [1], [2]. Voyez aussi bugzilla:21617.

Prévention contre les pourriels

Utiliser $wgActionPaths, surtout pour l'action Modifier, semble réduire le nombre de robots pollueurs tentant de modifier les articles. On suppose que les robots sont programmés pour rechercher « action=edit » pour identifier une installation MediaWiki et agir en conséquence. En ayant cela à l'esprit, il serait bénéfique de nommer votre préfixe action en quelque chose de non visible, de façon à ce que les robots ne puissent pas trouver votre site quand ils commencent à rechercher action/edit.


  1. Il n'est actuellement pas possible d'avoir un $wgActionPath pour l'action 'raw'.