这里会显示出您选择的修订版和当前版本之间的差别。
— |
dokuwiki:clean-url [2010/06/02 01:18] (当前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
+ | ======Dokuwiki SEO 技术:Dokuwiki URL 重写 ====== | ||
+ | Dokuwiki提供三种URL网址格式,通过修改配置文件(dokuwiki.php)中的$conf['userewrite']值来实现: | ||
+ | |||
+ | 下面是userewrite选项值的列表及其对应的URL格式: | ||
+ | |||
+ | *0 <-> 默认值,没有URL重写: http://www.pythonclub.org/index.php?id=dokuwiki:start | ||
+ | *1 <-> Apache服务器处理: http://www.pythonclub.org/dokuwiki/start | ||
+ | *2 <-> DokuWiki处理: http://www.pythonclub.org/index.php/dokuwiki:start | ||
+ | |||
+ | ===== Dokuwiki 默认URL格式 ===== | ||
+ | |||
+ | ==== 默认URL设置 ==== | ||
+ | |||
+ | <code php> | ||
+ | $conf['userewrite'] = 0; | ||
+ | </code> | ||
+ | |||
+ | 默认情况下,DokuWiki不做任何的URL重写,它的原始URL是这样的: | ||
+ | |||
+ | http://www.pythonclub.org/index.php?id=dokuwiki:start | ||
+ | |||
+ | 这样的URL是比较难看的,更重要的是有些搜索引擎不收录,虽然google号称能够识别这些查询网址,但是这对SEO是非常不利的。 | ||
+ | |||
+ | ===== Dokuwiki通过Apache服务器处理URL重写 ===== | ||
+ | |||
+ | ==== Dokuwiki 设置 ==== | ||
+ | | ||
+ | <code php> | ||
+ | $conf['userewrite'] = 1; | ||
+ | </code> | ||
+ | |||
+ | ==== Apache服务器设置 ==== | ||
+ | .htaccess 是Apache服务器的配置文件,在dokuwiki所在的文件夹下面创建这个文件,文件内容为: | ||
+ | |||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | 其中有个参数是RewriteBase,是用来指定URL重写的目录,如果.htaccess文件就在dokuwiki所在的文件夹就不需要设置这个选项。 | ||
+ | |||
+ | |||
+ | ===== DokuWiki自己重写URL ===== | ||
+ | ==== Dokuwiki设置 ==== | ||
+ | <code php> | ||
+ | $conf['userewrite'] = 2; | ||
+ | </code> | ||
+ | |||
+ | 这样设置就可以了,不需要设置Apache服务器的.htaccess文件了。 |