配置DokuWiki的URL重写

使用Dokuwiki搭建了一个wiki,但是wiki的url感觉不大美观。于是就设置了url重写,让它和平时看到的wiki的url一样。

DokuWiki的三种URL

默认情况下,DokuWiki不做任何的URL重写,它的原始URL是这样的:

1 http://wiki.qingxianyan.cn/doku.php?id=page

这样默认的URL不利于有些搜索引擎不收录,而且也不易于记忆。
通过设置DokuWiki的配置设置里面的高级设置的userwrite配置选项它可以支持两种URL重写方法,利用服务器的mod_rewrite或者在DokuWiki内部自己处理URL重写。
下面是userewrite选项值的列表及其对应的URL格式:
1、默认值没有URL重写 http://wiki.qingxianyan.cn/doku.php?id=wiki:syntax
2、htaccess服务器处理 http://wiki.qingxianyan.cn/wiki:syntax
3、DokuWiki处理 http://wiki.qingxianyan.cn/doku.php/wiki:syntax

使用Apache服务器处理

先在/wiki/conf/dokuwiki.php中设置:
$conf[‘userewrite’] = 1;
Apache服务器开启Rewrite功能
apache的URL重写是使用mod_rewrite模块。在apache的配置文件中添加如下这行:

1 LoadModule rewrite_module modules/mod_rewrite.so

然后使用mod_rewrte的指令来配置URL重写规则。这些规则可以放在apache的全局配置文件内,也可以放在DokuWiki的根目录下的.htaccess文件内,事实上DokuWiki已经为了写好了这些规则放在.htaccess.dist中,修改删除部分“#”注释即可 内容如下:

1 RewriteEngine on
2 RewriteBase /dokuwiki
3 RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L]
4 RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L]
5 RewriteRule ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L]
6 RewriteRule ^$ doku.php [L]
7 RewriteCond %{REQUEST_FILENAME} !-f
8 RewriteCond %{REQUEST_FILENAME} !-d
9 RewriteRule (.*) doku.php?id=$1 [QSA,L]

在RewriteBase /dokuwiki这一行,你需要根据实际情况做修改成指向你的DokuWiki目录的路径,Dokuwik就在站点根目录或者已经使用子域名解析到相应目录时,需将.htaccess 文件中的 RewriteBase /dokuwiki 行使用首字符“#”将其注释。

使用Nginx服务器处理

1 #Nginx的配置文件 /usr/local/nginx/conf/nginx.conf
01 rewrite ^(/)_media/(.*) $1lib/exe/fetch.php?media=$2 last;
02     rewrite ^(/)_detail/(.*) $1lib/exe/detail.php?media=$2 last;
03     rewrite ^(/)_export/([^/]+)/(.*) $1doku.php?do=export_$2&id=$3 last;
04     location /
05     {
06         if (!-f $request_filename)
07         {
08             rewrite ^(/)(.*)?(.*)  $1doku.php?id=$2&$3 last;
09             rewrite ^(/)$ $1doku.php last;
10         }
11     }

转载请注明:旅途@KryptosX » 配置DokuWiki的URL重写

时间: 2024-08-30 16:34:32

配置DokuWiki的URL重写的相关文章

nginx配置详解-url重写、反向代理、负载均衡

应用层的负载均衡 master/worker结构:一个master进程,生成一个或多个worker子进程 nginx请求的连接方式epoll 是Linux下多路复用IO接口select/poll的增强版本 select 遍历epoll无需遍历 1.nginx安装(未安装邮件服务器模块) ./configure --help查看编译选项 配置文件中路径没加/以prefix指定的路径开始./configure \--prefix=/usr \--sbin-path=/usr/sbin/nginx \

IIS URL重写模块和ASP.NET路由组件比较

随着针对IIS 7.0的URL重写模块的发布,以及在.NET框架3.5 SP1中包含了ASP.NET路由(Routing),许多ASP.NET开发人员开始质问这两种特性彼此间的关系,以及应该何时使用. Ruslan Yakushev在LearnIIS.NET上发表了一篇很有指导意义的文章. 二者本质的区别在于:IIS URL重写的处理方式比ASP.NET路由在层次上更低,对于客户端是不可见的. Ruslan给出了IIS 7 URL重写过程的可视化工作流.你可以看到URL重写模块是在请求被传递到请

求助:怎么让网站和论坛的URL重写兼容可用??

问题描述 现在有一个网站,还有一个独立的论坛,这两个都用到了URL重写,我把这两个项目的WEB.CONFIG配置中的URL重写放到一个WEB.CONFIG中,<httpModules><!--UrlRewrite--><addtype="Discuz.Forum.HttpModule,Discuz.Forum"name="HttpModule"/><addtype="hxy.UrlRewriter.ModuleRe

Apache 2.x服务器中的URL重写的配置和应用

1.关于Apache 2.x URL别名的说明和设置: Apache 2.x 服务器中的URL别名规则的文档,它是通过rewrite模块来实现的.能过URL别名规则,我们能看到一个干净的URL,比如可以重写为类似静态网页的地址.比如 LinuxSir.Org 论坛中,每个帖子都有一个静态网页的地址.干净的URL,对于Google搜索引擎来说是极为受用的,能更快的收录. 这个重写,是通过Apache 2.x 内部实现的,只是表面上把Web应用程序的URL变的干净一点,原始的URL还是一样有效. 1

IIS7 asp.net URL重写配置

今天总算是费尽千辛万苦把Vista旗舰版装上了,本来是不用费什么事情的.之前把DVD刻录机送给了我一个朋友,所以ISO早就下了,一直没时间装上,因为 无光驱安装Vista我还从来没有试过,所以一直在等时间仔细研究. 之前有篇日志是写我修了6年电脑,所以对于微软从操作系统到应用软件,或 者是安全管理系统都曾经仔细研究过.然后得出的总结是以后我可以直接带手机 去修电脑.结果Vista的出现让我的美梦破灭了,我那1G的卡根本装不下,所以 以后还是要带个移动硬盘,历史就是给无赖逼着倒退的. 基本上从准备

关于Java URL重写之后过滤器的配置和拦截规则问题

问题描述 我现在项目是这样,项目使用的struts2,用了URL重写,但是重写之后我的过滤器就过滤不到我配置的规则(*.htm,我的struts.action.extension=htm)了,URL重写的过滤器是放在我的过滤器的前面的,问一下是不是请求经过URL重写的这一层过滤器之后就会把URL变成没有重写之前的样子呢?<!--URL重写--><filter><filter-name>UrlRewriteFilter</filter-name><!--

apache url rewrite实现url重写配置详解

配置步骤: 第一步:找到apache的配置文件httpd.conf(文件在conf目录下) 第二步:你首先必须得让服务器支持mod_rewrite,如果你使用的是虚拟主机,请事先询问你的主机提供商. 打开httpd.conf,找到  代码如下 复制代码 #LoadModule rewrite_module modules/mod_rewrite.so 把#去掉 找到AllowOverride None 改成 AllowOverride All, 注:AllowOverride 的参数设置为ALL

nginx支持codeigniter的pathinfo模式url重写配置写法示例_nginx

开发环境 codeigniter 2.14 PHP 5.4.18 nginx 1.4.2 Codeigniter配置 打开 codeignite 的 config.php 文件修改如下: $config['uri_protocol'] = "PATH_INFO"; nginx配置 打开 nginx 的配置文件 nginx.conf 文件,修改如下: # 我使用的是虚拟主机配置 server { listen 80; server_name dev.example.com; rewrit

Windows IIS 7.5配置301重定向(URL重写)

需求背景: 如果您需要按seo搜索引擎结果中所显示的样式更改网页网址,建议您使用服务器端 301 重定向.这是确保用户及搜索引擎定向至正确网页的最佳方法.301 状态代码表示某网页已被永久迁移至新位置. 301 重定向功能在以下情况下尤为有用: 1.您已将网站移至新域,希望尽可能顺畅地完成这一转换. 2.人们通过不同网址访问您的网站.例如,如果可通过多种方式访问您的主页,如 http://example.com/home.http://home.example.com 或 http://www.