$wgActionPaths
$wgActionPaths
|
$wgActionPaths — параметр, настраивающий пути к различным действиям пользователей, использует «человекопонятный» URL.
Установить путь «человекопонятного» URL для действий, отличных от обычного просмотра страниц, можно, добавив его в этот параметр. Например:
'edit' => "$wgScriptPath/edit/$1"
Там должен быть соответствующий сценарий или нужно переписать параметр, чтобы ссылка вела на место, где обрабатываются эти URL-адреса.
Содержание |
[править] Правила переписывания
Эта опция для работы нуждается в соответствующих правилах переписывания.
Чтобы переписать большую часть (в настоящее время невозможно иметь $wgActionPath для «сырых» действий) действий в определённый путь можно сделать следующие изменения в LocalSettings.php:
$actions = array( 'view', 'edit', 'watch', 'unwatch', 'delete','revert', 'rollback', 'protect', 'unprotect', 'markpatrolled', 'render', 'submit', 'history', 'purge' ); foreach ( $actions as $action ) { $wgActionPaths[$action] = "$wgScriptPath/action/$action/$1"; } $wgArticlePath = $wgActionPaths['view'];
В Apache код переписывания подобен следующему:
RewriteRule ^/action/([a-z]*)/(.*)$ /index.php [L,QSA]
Это даст переадресацию всех запросов /action/название/статья на index.php MediaWiki, который будет анализировать действие и название в соответствии с настройками вашего $wgActionPaths.
При настройке Apache mod_negotation для выполнения скриптов PHP при использовании данного метода следует соблюдать осторожность, чтобы сайт не дал ошибку 406 Not Acceptable, которая может в некоторых случаях раскрыть для публичного просмотра директории[1][2][3].
[править] Чистый путь действия от корня
- LocalSettings.php
$actions = array( 'view', 'edit', 'watch', 'unwatch', 'delete','revert', 'rollback', 'protect', 'unprotect', 'markpatrolled', 'render', 'submit', 'history', 'purge' ); foreach ( $actions as $action ) { $wgActionPaths[$action] = "/$action/$1"; } $wgArticlePath = $wgActionPaths['view'];
- .htaccess
- Будьте уверены, что готовы изменить «/mediawiki/index.php», где установлена MediaWiki
RewriteRule ^/([a-z]*)/(.*)$ /mediawiki/index.php [L,QSA]
[править] Защита от спама
Используя $wgActionPaths, особенно для действия edit (правка), возможно можно сократить число правок статей от спам-ботов. Есть подозрение, что боты запрограммированы на action=edit , чтобы определить установки MediaWiki и действовать соответствующим образом. Имея это ввиду, было бы выгодно назвать префикс действия (action) как-то не так очевидно, чтобы боты не могли найти ваш сайт, когда они начинают искать «action/edit».
[править] Примечания
[править] Ссылки
- Описание на сайте mediawiki.org (англ.)