Manual:$wgActionPaths

From MediaWiki.org
Jump to: navigation, search
This page is a translated version of the page Manual:$wgActionPaths and the translation is 47% complete.

Other languages:
العربية • ‎Deutsch • ‎English • ‎فارسی • ‎français • ‎日本語 • ‎polski • ‎português do Brasil
Paths: $wgActionPaths
様々なユーザアクションのためのパス。'pretty'URLに使用されます。
導入されたバージョン: 1.5.0 (r7538)
除去されたバージョン: 使用中
可能な値:
既定値: array()
他の設定: アルファベット順 | 機能順

詳細[edit]

Setup Manual:短い URLManual:Short URL and ensure it is working first

様々なユーザアクションのためのパス。'pretty'URLに使用されます。通常のページの閲覧以外の動作に'pretty'URLのパスを設定するには、この配列に加えてください。 用例としては:

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

これらのURLを扱うためには、適切なスクリプトか"rewrite rule"を設置する必要があります。

Example configurations[edit]

These examples include sample .htaccess files for Apache servers using mod_rewrite. Other servers will have other ways of accomplishing URL rewrites.

Action paths from root[edit]

This sets up action paths of the form http://mywiki.example.com/edit/Cucumber etc.

LocalSettings.php
$actions = array( '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'];

extra htaccess rules[edit]

.htaccess
Be sure to modify "/w/index.php" to where you have MediaWiki installed
RewriteRule ^/([a-z]*)/(.*)$ %{DOCUMENT_ROOT}/w/index.php [L,QSA]

action on the end[edit]

$actions = array( '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'];

Non root action paths[edit]

For standard example.com/wiki/Main_Page rewrites to example.com/wiki/view/Main_Page use above config and change this line to include "/wiki":

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

For standard example.com/wiki/Main_Page view urls, and rewrites to example.com/wiki/edit/Main_Page

$actions = array( '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 on the end[edit]

For standard example.com/wiki/Main_Page view urls, and rewrites to example.com/wiki/Main_Page/edit

you cannot have subpages of main pages named "delete, edit, watch, unwatch" etc from the array when setup like this.
$actions = array( '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'];

Virtual action/ directories[edit]

このオプションは"rewrite rule"が機能するために適切なオプションが必要です。

すべての動作を特定のパスに書き換える(rewrite)なら、1つは、LocalSettings.phpに以下の変更をしてください。:

$actions = array( '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'];

Apache では、rewrite rule のコードは下記のようになります。:

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

これは /action/actionword/title の全てのリクエストを index.php?action=actionword&title=title に転送するでしょう。

When configuring Apache mod_negotation to execute PHP scripts when using this method care should be taken not to cause 406 Not Acceptable errors that might in some cases expose a directory listing, see [1], [2]. bugzilla:21617 も参照してください。

スパムの予防手段

$wgActionPathsを使用する事で、特にedit 動作で記事編集を試みるスパムの検索ロボット(bots)の数を減少させるように思えます。 検索ロボット(bots)がMediaWikiインストレーションとその内容を特定するためにaction=editを探すようにプログラムされている疑いがあります。 この点を考慮して、検索ロボット(bots)がaction/editを探し始めたときに、あなたのサイトを見つけることができないように、action 接頭辞を何か明白でない名称にするのは有益でしょう。