首页 > 解决方案 > 多个域和一个文件夹 - 如何管理 sitemap.xml?

问题描述

我有多个域example-A.com,它们都是不同的example-B.comexample-C.com但它们都指向我服务器上的同一个文件夹(这三个域连接非常紧密,但只通过一个 Laravel 应用程序进行管理,更多信息请参见多个网站安装一个 Laravel

现在我需要为每个域一个不同的sitemap.xml文件。

我在这个答案中找到了如何在 XML 文件中执行 PHP。有了它,我可以动态地改变sitemap.xml相对于url. 如果爬虫和 SE 尝试访问 XML 文件,这是否适用?或者有更推荐的方法吗?

标签: phplaravel-5php-7

解决方案


有一条与 PHP 脚本匹配sitemap.xml但通向 PHP 脚本的路线。然后这个脚本提供一个预先生成的站点地图文件,或者甚至可以自己生成它。我能想象的最简单的方法是:

# .htaccess
RewriteRule ^/sitemap.xml$ sitemap.php [L]

// sitemap.php
switch ($_SERVER['HTTP_HOST']) {
    case 'example-A.com':
        echo file_get_contents(__DIR__ . '/sitemap-A.xml');
        break;
    case 'example-B.com':
        echo file_get_contents(__DIR__ . '/sitemap-B.xml');
        break;
    // etc.
}

我不知道 Laravel,但我确信有一种方法可以创建一个/sitemap.xml由某个控制器匹配并提供服务的路由。


推荐阅读