我有多个域example-A.com
,example-B.com
和example-C.com
,它们都是不同的,但是它们都指向服务器上的同一文件夹(这三个域紧密相连,但仅通过单个Laravel应用程序进行管理,有关更多信息,请参见Multiple websites with one Laravel installation)
现在,我需要为每个域使用不同的sitemap.xml
文件。
我在this answer how to execute PHP inside XML files找到了。这样,我可以相对于sitemap.xml
动态更改url
的内容。如果爬网程序和SE尝试访问XML文件,此方法是否适用?还是有更推荐的方法?
答案 0 :(得分:1)
具有与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
匹配并由某些控制器提供服务的路由。