手册:$wgActionPath
服务器URL及文件路徑: $wgActionPaths | |
---|---|
各种用户操作的路径。用于使URL更美观。 |
|
引进版本: | 1.5.0 (r7538) |
移除版本: | 仍在使用 |
允许的值: | 未指定 |
默认值: | [] |
其他设置: 按首字母排序 | 按功能排序 |
详情
若要为普通页面视图以外的操作设置“Pretty”URL路径,请添加到此数组中。
例如:
$wgActionPaths['edit'] = "$wgScriptPath/edit/$1";
除了设置此变量外,还必须设置适当的脚本或服务器重写规则来处理这些URL。
示例配置
这些示例包括使用mod_rewrite的Apache服务器的示例.htaccess文件。
其他服务器将有其他方法来完成URL重写。
从根开始的操作路径
这将设置http://mywiki.example.com/edit/Cucumber
等形式的操作路径。
- 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'];
额外的HTAccess规则
- .htaccess
- 务必将“/w/index.php”修改为安装MediaWiki的位置
RewriteRule ^/([a-z]*)/(.*)$ %{DOCUMENT_ROOT}/w/index.php [L,QSA]
在最后的动作
这将设置http://mywiki.example.com/Cucumber/edit
等形式的操作路径。
$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'];
非根操作路径
对于标准的Example.com/wiki/Main_Page重写为Example.com/wiki/view/Main_Page,请使用上面的配置并更改此行以包括“/wiki”:
foreach ( $actions as $action ) {
$wgActionPaths[$action] = "/wiki/$action/$1";
}
用于标准的Example.com/wiki/Main_Page视图URL,并重写为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'];
最后的配置
用于标准的Example.com/wiki/Main_Page视图URL,并重写为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'];
虚拟操作/目录
这将设置http://mywiki.example.com/wiki/action/edit/Cucumber
等URL。
要重写Most[1]操作指向特定路径,您可以对$LocalSetting进行以下更改:
$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'];
在Apache中,编写类似于以下内容的重写规则:
RewriteRule ^/action/([a-z]*)/(.*)$ /index.php [L,QSA]
这将把对/action/actionword/title的所有请求转发到MediaWiki的index.php,后者将根据您的$wgActionPath设置解析操作和标题。
在配置Apachemod_negotation以在使用此方法时执行PHP脚本时,应注意不要导致406不可接受的错误,这些错误在某些情况下可能会暴露目录列表,请参阅[1]、[2]。 参见bugzilla:21617。
垃圾邮件防范
使用$wgActionPath,尤其是“编辑”操作,似乎可以减少尝试编辑文章的垃圾邮件机器人的数量。 有人怀疑bot被编程为查找action=EDIT来识别MediaWiki安装并正确操作。 考虑到这一点,最好将你的“action”命名为不明显的前缀,这样机器人在开始寻找“action/edit”时就找不到你的网站了。
- ↑ ,当前不能将$wgActionPath用于‘raw’操作。