Kézikönyv:$wgActionPaths

From mediawiki.org
This page is a translated version of the page Manual:$wgActionPaths and the translation is 100% complete.
Server URLs and file paths: $wgActionPaths
Felhasználói feladatok útvonalának megadásához, valamint URL-ek szépítéséhez használható.
Bevezetve:1.5.0 (r7538)
Eltávolítva:használatban
Megengedett értékek:nincs megadva
Alapértelmezett érték:[]

Részletek

Állítsd be a Manual:Short URL oldalon olvashatókat és győződj meg róla, hogy működik!

Ahhoz, hogy a lapok megjelenítésén kívül máshol is „szép” URL-eket használhass, illeszd be az alábbi tömböt.

Például:

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

A változó beállításán kívül el kell helyezned egy vonatkozó szkriptet, vagy a szerveren egy új írási szabályt kell beállítanod ezen URL-ek kezeléséhez.

Mintabeállítások

Ezek a példák mod_rewrite-ot alkalmazó Apache-szerverek .htaccess-mintafájljai.

Más szervereken az újraírást más módokon lehet elérni.

Műveleti útvonalak a gyökérkönyvtárból

Ez a beállítás http://mywiki.example.com/edit/Cucumber formájú linkeket eredményez.

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'];

További .htaccess-szabályok

.htaccess
Győződj meg róla, hogy módosítod a „/w/index.php-t”, ahol a MediaWiki található.
RewriteRule ^/([a-z]*)/(.*)$ %{DOCUMENT_ROOT}/w/index.php [L,QSA]

Műveletek a parancsok végén

Ez a beállítás http://mywiki.example.com/Cucumber/edit stb. formájú műveleti utakat eredményez.

$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'];

Nem gyökérkönyvtárból kiinduló útvonalak

Például ahhoz, hogy az example.com/wiki/Main_Page-ből example.com/wiki/view/Main_Page legyen, a fenti konfigurációt kell használni és az alábbi sort kell megváltoztatni a „/wiki” beillesztéséhez:

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

Ahhoz, hogy a example.hu/wiki/Main_Page-ből example.com/wiki/edit/Main_Page legyen:

$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'];

Műveletek a parancsok végén

Ahhoz, hogy olvasáskor a link example.com/wiki/Main_Page legyen, szerkesztéskor pedig example.com/wiki/Main_Page/edit:

A Kezdőlap allapjainak nem lehet „delete, edit, watch, unwatch” („törlés, szerkesztés, figyelőlistára helyezés, levétel a figyelőlistáról”) nevük az alábbi beállítással.
$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'];

Virtuális műveletek/könyvtárak

Ez a beállítás http://mywiki.example.com/wiki/action/edit/Cucumber formájú linkeket eredményez.

Ahhoz, hogy a legtöbb[1] művelet egy meghatározott útvonalra mutasson, a LocalSettings.php -ben az alábbi változtatásokat kell eszközölni:

$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'];

Az Apache-ban egy a következőhöz hasonló újraírási szabályt kell definiálni:

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

Ez minden /action/művelet/cím kérést továbbít a MediaWiki index.php fájljának, amely a műveletet és címet a $wgActionPaths beállításainak megfelelően értelmezi.

Az Apache mod_negotiation PHP-szkriptek futtatásához való beállításakor figyelni kell arra, hogy ne jelentkezzen „406 Not Acceptable” („406 Nem elfogadható”) hiba, mivel ezzel láthatóvá válhat a könyvtárszerkezet (lásd: [1] és [2]). Lásd még: bugzilla:21617

Spamvédelem

A $wgActionPaths használatakor (kiváltképp szerkesztéskor) megfigyelhető a spambotok aktivitásának csökkenése. A feltételezések szerint ezek a botok a MediaWiki jelenlétét az „action=edit” tesztelésével ellenőrzik és ennek megfelelően működnek ezután. Így gondold meg, hogy az „action” előtag elhagyásával az „action=edit” parancsot kereső botok nem találhatják meg a wikidet.


  1. Jelenleg nem lehetséges $wgActionPath hozzárendelése a „nyers” műveletekhez.