|
我所在的前端团队使用 MediaWiki 作为文档库. 一直以来需要通过 IP 访问服务, 今天总算绑定了域名: wiki.aliluna.com. 终于不用将 Wiki 存在收藏夹了. 绑定域名后发现 MediaWiki 的路径很是复杂, 默认有以下两种形式.- http://wiki.aliluna.com/mediawiki/index.php/文章标题
- http://wiki.aliluna.com/mediawiki/index.php?title=文章标题
复制代码 从目录结构来看, 可以认为 Wiki 的所有页面都放在一个目录里面, 再通过链接互相桥接. 默认的路径显然过于臃肿. 其实 MediaWiki 短路径, 如下即可.- http://wiki.aliluna.com/文章标题
复制代码 MediaWiki 官方为这样臃肿的路径方式作出了解释, 认为这样的路径结构适合所有主机环境, 因为你不知道哪一天会迁移 Wiki, 但新的主机环境业务不能使用短路径. 但我们自己搭建的服务器, 怎么可能出现这样的情况? 再说, 不支持核心功能的主机, 不买也罢. 所以, 还是使用短路径吧, 好记...
使用 MediaWiki 短路径的方法
为了使用了简化 URL, 我做了一些修改, 下面会逐步说明.
1. 修改 MediaWiki 的本地设定文件
打开 LocalSettings.php 修改配置如下.
- $wgScriptPath = "";
- $wgArticlePath = '/$1';
- $wgUsePathInfo = false;
复制代码 2. 添加 .htaccess 配置
上一步已经将访问 URL 改为了短路径形式, 但还不能正常访问, 因为 Web 服务器不能通过那个路径找到网页资源. 所以我们需要通过 .htaccess 重写规则. 在 MediaWiki 的根目录新建 .htaccess, 文件内容如下.- <IfModule mod_rewrite.c>
- RewriteEngine on
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule ^(.+)$ index.php?title=$1 [L,QSA]
- </IfModule>
复制代码 如果你发现 .htaccess 没有生效, 请确认两处.
打开 httpd.conf, 将 LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so 前的 # 号去除; 如果 httpd.conf 内不包含该语句, 请自行添加. (不同的服务器环境中 mod_rewrite.so 文件路径可能不一样.)
打开 Apache 配置文件 (一般是 httpd.conf 文件, Ubuntu 是 apache2.conf 文件) 或者 VirtualHost 配置文件, 将对应目录下 AllowOverride 的值改为 All.
操作后重启 Apache 服务器即可. |
|