在竹貓星球看到了這篇[分享] 關於搜尋引擎來訪的控制與管理, 裡頭提到了利用PHPBB的sitemp產生器, 動態產生動態產生sitemap.xml(事實上是由phpbb.php產生的內容), 來提交給Google。
雖然還沒測是那個sitemap產生器能否在phpbb 3.x 使用, 不過版本似乎有點舊(2005年), 於是又在同一個網站(phpBBHacks.com)找到一個較新的sitemap產生器, 使用的方式也大致相同。
- 將下載下來的sitemap產生器解壓縮, 將 google-sitemap.php放到 phpbb的根目錄
- 修改 google-sitemap.php的內容, 把下列內容中的「www.YOUR-DOMAIN.TLD」改成自己phpbb的網址
$domain_root = 'http://www.YOUR-DOMAIN.TLD/'; // Edit here - 將改好的檔案上傳到主機。
- 將google-sitemap.php當作sitemap提交給google(在Google網站管理員工具提交), 基本上提交給Google的是由google-sitemap.php所產生的「sitemap索引」, 實際的sitemap也會經由此索引, 由google-sitemap.php依照論壇各版產生給Google。
- 等待google去抓這個sitemap, 看看結果訊息是否正常。
出現錯誤時的修改方式:
不過實際使用時, 會發現提交sitemap之後會出現錯誤訊息, 似乎Google目前並不支援在sitemap索引中使用<changefreq>, 所以要修改一下google-sitemap.php, 把下列這段的紅字部份改成註解
{
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
echo ' <sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84">'."\n";
$sql = 'SELECT forum_id FROM ' . FORUMS_TABLE;
$result = $db->sql_query($sql);
while($data = $db->sql_fetchrow($result))
{
if ($auth->acl_get('f_list', $data['forum_id']))
{
echo ' <sitemap>' . "\n";
echo ' <loc>'. $domain_root .'google-sitemap.php?fid='.$data['forum_id'].'</loc>'. "\n";
echo ' <changefreq>daily</changefreq>'. "\n";
echo ' </sitemap>'. "\n";
}
}
echo "\n".' </sitemapindex>';
}
上面的紅字部份前面加上 「//」, 變成 「// echo ' <changefreq>daily</changefreq>'. "\n";」 ,重新上傳並提交給google之後稍等一段時間, 就會出現正常訊息了!