目录

Dokuwiki SEO 技术:Dokuwiki URL 重写

Dokuwiki提供三种URL网址格式,通过修改配置文件(dokuwiki.php)中的$conf['userewrite']值来实现:

下面是userewrite选项值的列表及其对应的URL格式:

Dokuwiki 默认URL格式

默认URL设置

$conf['userewrite'] = 0;

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

http://www.pythonclub.org/index.php?id=dokuwiki:start

这样的URL是比较难看的,更重要的是有些搜索引擎不收录,虽然google号称能够识别这些查询网址,但是这对SEO是非常不利的。

Dokuwiki通过Apache服务器处理URL重写

Dokuwiki 设置

$conf['userewrite'] = 1;

Apache服务器设置

.htaccess 是Apache服务器的配置文件,在dokuwiki所在的文件夹下面创建这个文件,文件内容为:

RewriteEngine on

# Not all installations will require the following line.  If you do,
# change "/dokuwiki" to the path to your dokuwiki directory relative
# to your document root.
#RewriteBase /dokuwiki

# If you enable DokuWikis XML-RPC interface, you should consider to
# restrict access to it over HTTPS only! Uncomment the following two
# rules if your server setup allows HTTPS.
RewriteCond %{HTTPS} !=on
RewriteRule ^lib/exe/xmlrpc.php$      https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

RewriteRule ^_media/(.*)              lib/exe/fetch.php?media=$1  [QSA,L]
RewriteRule ^_detail/(.*)             lib/exe/detail.php?media=$1  [QSA,L]
RewriteRule ^_export/([^/]+)/(.*)     doku.php?do=export_$1&id=$2  [QSA,L]
RewriteRule ^$                        doku.php  [L]
RewriteCond %{REQUEST_FILENAME}       !-f
RewriteCond %{REQUEST_FILENAME}       !-d
RewriteRule (.*)                      doku.php?id=$1  [QSA,L]
RewriteRule ^index.php$               doku.php

其中有个参数是RewriteBase,是用来指定URL重写的目录,如果.htaccess文件就在dokuwiki所在的文件夹就不需要设置这个选项。

DokuWiki自己重写URL

Dokuwiki设置

$conf['userewrite'] = 2;

这样设置就可以了,不需要设置Apache服务器的.htaccess文件了。