php - 多个域和一个文件夹 - 如何管理 sitemap.xml?
问题描述
我有多个域example-A.com
,它们都是不同的example-B.com
,example-C.com
但它们都指向我服务器上的同一个文件夹(这三个域连接非常紧密,但只通过一个 Laravel 应用程序进行管理,更多信息请参见多个网站安装一个 Laravel)
现在我需要为每个域一个不同的sitemap.xml
文件。
我在这个答案中找到了如何在 XML 文件中执行 PHP。有了它,我可以动态地改变sitemap.xml
相对于url
. 如果爬虫和 SE 尝试访问 XML 文件,这是否适用?或者有更推荐的方法吗?
解决方案
有一条与 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
由某个控制器匹配并提供服务的路由。
推荐阅读
- javascript - 如何在不知道它是使用 JSON 的 javascript 中的特定键的情况下获取属性值
- python-3.x - 在 python 中解码时,85 位编码的字符串没有被正确处理
- ios - 相关的 ViewController 应该显示来自 Cell 的标签
- rust - 如何在我的源代码之外存储格式字符串模板?
- html - 带顺序的引导响应 div
- css - 试图让这个开关改变页面的背景颜色
- delphi - 展开该节点时如何更改 TVirtualStringTree 节点图标
- javascript - Asp.net MVC ajax 在模态中提交表单
- c++ - 如何找出二进制文件中使用的 C++ 标准?
- wxpython - RichTextCtrl 的 PositionToCoords