如果每个域名的sitemap.xml
文件内容不同,并且你希望在同一个项目下管理这些不同的sitemap.xml
,你可以通过在每个域名的路由中动态生成相应的sitemap.xml
来实现。以下是一个简单的示例:
// routes/web.php use Illuminate\Support\Facades\Route; use App\Http\Controllers\SitemapController; // 定义sitemap.xml路由 Route::get('/sitemap.xml', [SitemapController::class, 'index']); // 其他路由...
// app/Http/Controllers/SitemapController.php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Response; use App\Models\Post; class SitemapController extends Controller { public function index(Request $request) { // 根据请求的域名或其他条件,获取相应的文章列表 $domain = $request->getHost(); $posts = Post::where('domain', $domain)->get(); // 生成sitemap内容 $sitemapContent = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL; $sitemapContent .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . PHP_EOL; foreach ($posts as $post) { $url = 'https://' . $domain . '/post/' . $post->id; $sitemapContent .= '<url>' . PHP_EOL; $sitemapContent .= '<loc>' . $url . '</loc>' . PHP_EOL; $sitemapContent .= '</url>' . PHP_EOL; } $sitemapContent .= '</urlset>'; // 返回XML响应 return Response::make($sitemapContent, 200, [ 'Content-Type' => 'text/xml' ]); } }
在这个示例中,我们首先定义了一个/sitemap.xml
的路由,然后根据请求的域名在SitemapController
中动态生成相应的sitemap.xml
内容。这样,不同域名的请求都会根据其对应的内容生成相应的sitempa.xml
,从而达到区分不同域名的目的。
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » laravel站群下sitemap.xml应该怎么生成
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » laravel站群下sitemap.xml应该怎么生成