$wgActionPaths

Материал из Викиреальностя
Перейти к: навигация, поиск
$wgActionPaths
Пути различным действиям пользователей. Использует «человекопонятный» URL
Появилось Версия 1.1.0 (r7538)
Удалено ещё используется
Допустимые значения неизвестны
Значение по умолчанию array()

$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».

[править] Примечания

[править] Ссылки