sitemap.xml 文件中是否允许使用通配符?

发布于 2024-09-12 18:35:34 字数 313 浏览 8 评论 0原文

我有一个网站,其目录包含 100 多个 html 文件。 我想让爬虫爬取该目录下的所有html文件。 我已经在 robots.txt 中添加了以下句子:

Allow /DirName/*.html$

有什么方法可以将目录中的文件包含在 sitemap.xml 文件中,以便抓取目录中的所有 html 文件吗? 像这样的事情:

<url>
    <loc>MyWebsiteName/DirName/*.html</loc>
</url>

I have a website that has a directory that contains 100+ html files.
I want crawlers to crawl all the html files that directory.
I have already added following sentence to my robots.txt:

Allow /DirName/*.html$

Is there any way to include the files in the directory in sitemap.xml file so that all html files in the directory will get crawled?
Something like this:

<url>
    <loc>MyWebsiteName/DirName/*.html</loc>
</url>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

所谓喜欢 2024-09-19 18:35:34

站点地图协议既不限制也不允许使用通配符;说实话,这是我第一次听到这个。另外,我非常确定搜索引擎无法在站点地图中使用通配符。

请查看 Google 推荐的站点地图生成器。您可以使用大量工具快速创建站点地图。

The sitemap protocol neither restricts or allows the use of wildcards; to be honest this is the first time i hear this. Also, I'm pretty much sure that search engines can't make use of the wildcards in sitemaps.

Please take a look at Google's recommendation of sitemap generators. There are tons of tools you can create a sitemap with in a blink of an eye.

爱给你人给你 2024-09-19 18:35:34

它不允许使用通配符。如果您在服务器中运行 php,那么您可以列出目录中的所有文件并使用 目录迭代器

// this is assume you have already a sitemap class.
$sitemap = new Sitemap;

// iterate the directory
foreach(new DirectoryIterator('/MyWebsiteName/DirName') as $directoryItem)
{
    // Filter the item
    if(!$directoryItem->isFile()) continue;

    // New basic sitemap.
    $url = new Sitemap_URL;

    // Set arguments.
    $url->set_loc(sprintf('/DirName/%1$s', $directoryItem->getBasename()))
        ->set_last_mod(1276800492)
        ->set_change_frequency('daily')
        ->set_priority(1);

    // Add it to sitemap.
    $sitemap->add($url);
}

// Render the output.
$response = $sitemap->render();

// Cache the output for 24 hours.
$cache->set('sitemap', $response, 86400);

// Output the sitemap.
echo $response;

It is not allows the use of wildcards. if you run php in your server then you could list all files in the directory and generate sitemap.xml automatically using the DirectoryIterator .

// this is assume you have already a sitemap class.
$sitemap = new Sitemap;

// iterate the directory
foreach(new DirectoryIterator('/MyWebsiteName/DirName') as $directoryItem)
{
    // Filter the item
    if(!$directoryItem->isFile()) continue;

    // New basic sitemap.
    $url = new Sitemap_URL;

    // Set arguments.
    $url->set_loc(sprintf('/DirName/%1$s', $directoryItem->getBasename()))
        ->set_last_mod(1276800492)
        ->set_change_frequency('daily')
        ->set_priority(1);

    // Add it to sitemap.
    $sitemap->add($url);
}

// Render the output.
$response = $sitemap->render();

// Cache the output for 24 hours.
$cache->set('sitemap', $response, 86400);

// Output the sitemap.
echo $response;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文