Příručka:$wgActionPaths
Adresy URL serveru a cesty k souborům: $wgActionPaths | |
---|---|
Cesty pro různé akce uživatele. Používá se k vylepšení adres URL. |
|
Zavedeno od verze: | 1.5.0 (r7538) |
Odstraněno od verze: | stále se používá |
Povolené hodnoty: | Blíže neurčeno |
Výchozí hodnota: | [] |
Další nastavení: Podle abecedy | Podle funkce |
Podrobnosti
Chcete-li nastavit 'lepší' cesty URL pro jiné akce než obyčejná zobrazení stránky, přidejte do tohoto pole.
Například:
$wgActionPaths['edit'] = "$wgScriptPath/edit/$1";
Kromě nastavení této proměnné musíte zavést vhodný skript nebo pravidlo přepisu serveru, které bude tyto adresy URL zpracovávat.
Příklad konfigurace
Tyto příklady zahrnují ukázkové soubory .htaccess pro servery Apache používající mod_rewrite.
Jiné servery budou mít jiné způsoby provádění přepisů URL.
Akční cesty z kořene
Tím se nastaví akční cesty ve tvaru http://mywiki.example.com/edit/Cucumber
atd.
- 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'];
další pravidla htaccess
- .htaccess
- Nezapomeňte upravit "/w/index.php" na místo, kde máte nainstalovanou MediaWiki
RewriteRule ^/([a-z]*)/(.*)$ %{DOCUMENT_ROOT}/w/index.php [L,QSA]
akce na konci
Tím se nastaví akční cesty ve tvaru http://mywiki.example.com/Cucumber/edit
atd.
$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'];
Akční cesty bez root
Pro standardní example.com/wiki/Main_Page se přepisuje na example.com/wiki/view/Main_Page použijte výše uvedenou konfiguraci a změňte tento řádek tak, aby obsahoval "/wiki":
foreach ( $actions as $action ) {
$wgActionPaths[$action] = "/wiki/$action/$1";
}
Pro standardní example.com/wiki/Main_Page zobrazí adresy URL a přepíše na 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'];
akce na konci
Pro standardní example.com/wiki/Main_Page zobrazí adresy URL a přepíše na example.com/wiki/Main_Page/edit
$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ální akce/adresáře
Tím se nastaví adresy URL, jako je http://mywiki.example.com/wiki/action/edit/Cucumber
atd.
Chcete-li přepsat obyčejně[1] akce pro konkrétní cestu, je možné provést následující změny 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'];
V Apache nakódujte pravidlo přepisu podobné následujícímu:
RewriteRule ^/action/([a-z]*)/(.*)$ /index.php [L,QSA]
Toto předá všechny požadavky do /action/actionword/title do index.php MediaWiki, který analyzuje akci a název podle vašich nastavení $wgActionPaths.
Při konfiguraci Apache mod_negotation pro spouštění PHP skriptů při použití této metody je třeba dbát na to, aby nedošlo k chybám 406 Not Acceptable, které by v některých případech mohly odhalit výpis adresáře, viz [1], [2]. Více na stránce bugzilla:21617.
Prevence spamu
Zdá se, že použití $wgActionPaths, zejména pro akci edit, snižuje počet spamovacích robotů pokoušejících se o úpravy článků. Existuje podezření, že roboti jsou naprogramováni tak, aby hledali action=edit, aby identifikovali instalaci MediaWiki a jednali správně. S ohledem na tuto skutečnost by bylo prospěšné pojmenovat předponu action (akce) něčím, co není zjevné, aby roboti nemohli najít váš web, když začnou hledat action/edit (akce/úpravy).
- ↑ V současné době není možné mít $wgActionPath pro 'raw' akci.