這是本文件的舊版!
currently translating
Google Sitemap
DokuWiki 可以自動建立 XML Sitemap。適用於各大搜尋引擎,例如:Google,Yahoo and Microsoft。
要開啟這個功能請設定 'sitemap option'。在開啟這個功能之後, DokuWiki 會試著在你 DokuWiki 的根目錄中建立一個名稱為 sitemap.xml.gz
的 sitemap 。你必須確定 DokuWiki 可以寫入這個檔案。如果根目錄無法開啟寫入權限,你必須在根目錄下建立一個空的檔案,取名為 sitemap.xml.gz
,並設定好權限。
在建立一個新的sitemap之後,DokuWiki會在背景執行http://www.google.com/webmasters/sitemaps/ping?sitemap=<your_sitemap_url>
,試著 “ping” Goole ,通知它有新的 sitemap 了。
備註:
- Google sitemap 有個網站擁有者認證服務。對 DokuWiki 來說,實行這個選項最簡單的方式是「上傳一個 HTML 檔」。假設
http://your.site.tld/dokuwiki_basedir/
是你的網站,首先建立一個 Google 建議的檔案,如http://your.site.tld/dokuwiki_basedir/googlexyz.html
(使用者必須可讀)。然而,為了讓這個功能可以運作,你必須也同時開啟 'send404'。原因是因為對於不存在的頁面, DokuWiki 預設回傳 “200 OK”。Google 對於不存在的頁面預期的回應用是 “404 Not Found”。所以當 Google 測試一個虛構的網頁(如http://your.site.tld/dokuwiki_basedir/noexist_xyz.html
),然後得到 “200 OK” 的回應,它會取消這個認證。 - dokuwiki-2006-03-09 有一個 bug ,會讓 sitemap 建立或更新時自動 “ping” Google 導向錯誤的 sitemap URL 。更多資訊請見http://bugs.splitbrain.org/?do=details&id=815
- indexer 產生 Sitemap。要手動執行及 debug ,請使用:http://yourserver/dokuwiki/lib/exe/indexer.php?debug=1
Google Sitemap Problems
To launch it manually, and debug it, try : http://yourserver/dokuwiki/lib/exe/indexer.php?debug=1Dokuwiki-20061106. I've done. By I have this answer:
runIndexer(): started metaUpdate(): started runSitemapper(): started runSitemapper(): using sitemap.xml.gz
here process hangs-up with no other output.
No sitemap.xml.gz is created.
Solved creating a new empty sitemap.xml.gz in dokuwiki root directory. It seems needed even if dokuwiki rootdir is writeable for user apache.
I thing may be useful a better output from debug.
Sitemap Validity
Sitemaps are bound to a domain name. If your sitemaps contains URLs of the form http://domain.org
, the sitemap will not be valid when pulled from http://www.domain.org
and vice versa. To make sure a canonical URL is used you can either configure the baseurl setting or redirect “mismatching” URLs via another rewrite rule in your .htaccess
:
Rewrite example (Apache):
RewriteEngine on RewriteCond %{HTTP_HOST} !^www\.domain\.org$ [NC] RewriteRule ^(.*)$ http://www.domain.org/$1 [R,L]