[]
To set 'pretty' URL paths for actions other than plain page views, add to this array.
For instance:
$wgActionPaths['edit'] = "$wgScriptPath/edit/$1";
In addition to setting this variable, you must put in place an appropriate script or server rewrite rule to handle these URLs.
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.
$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'];
RewriteRule ^/([a-z]*)/(.*)$ %{DOCUMENT_ROOT}/w/index.php [L,QSA]
This sets up action paths of the form http://mywiki.example.com/Cucumber/edit
etc.
$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'];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 = [ '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'];
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 = [ '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'];Virtual action / directories[edit]
This sets up URLs such as http://mywiki.example.com/wiki/action/edit/Cucumber
etc.
To rewrite most[1] actions to a specific path, one could make the following changes to 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'];
In Apache, code a rewrite rule similar to the following:
RewriteRule ^/action/([a-z]*)/(.*)$ /index.php [L,QSA]
This will forward all requests to /action/actionword/title to MediaWiki's index.php which will parse the action and title according to your $wgActionPaths settings.
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]. See also bugzilla:21617.
Using $wgActionPaths, especially for the edit action seems to reduce the number of spam bots attempting article edits. It is suspected that bots are programmed to look for action=edit to identify a MediaWiki installation and act appropriately. With this in mind, it would be beneficial to name your action prefix something non-apparent so bots can't find your site when they start looking for action/edit.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4