如何使用没有图像 url 的 laravel-站点地图生成 sitemap.xml?
How to generate a sitemap.xml using laravel-sitemap without images url?
我正在使用 spatie 生成 sitemap.xml。它按预期正常工作。但根据某些要求,我不想在 sitemap.xml.
中包含任何图像 url
这是我的代码 -
public function sitemap(){
$link = Website::where('adminId', Auth::user()->id)->value('link');
$path = public_path('uploads/'.Auth::user()->id.'/sitemap.xml');
if (file_exists($path)) {
File::delete($path);
fopen($path, 'w');
} else {
fopen($path, 'w');
}
SitemapGenerator::create($link)->writeToFile($path);
return response()->json('success');
}
目前我的 sitemap.xml
带有图像链接的东西看起来像这样 -
<url>
<loc>http://www.example.com/uploads/3/page/anahera/1591769129-4412.jpeg</loc>
<lastmod>2020-06-23T11:22:59+12:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://www.example.com/uploads/3/page/anahera/1591769136-7646.jpeg</loc>
<lastmod>2020-06-23T11:22:59+12:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
有什么方法可以从 sitemap.xml 中删除这些图像链接?
感谢您的帮助。
请遵循文档的这一部分 - spatie。这并不是特别省略图像,但是如果您的 url 中有任何特定格式的图像 link - http://www.example.com/uploads
然后尝试获取 segment(1)
并进行比较,因此这部分文档将工作。
以你的情况为例-
public function sitemap(){
$link = Website::where('adminId', Auth::user()->id)->value('link');
$path = public_path('uploads/'.Auth::user()->id.'/sitemap.xml');
if (file_exists($path)) {
File::delete($path);
fopen($path, 'w');
} else {
fopen($path, 'w');
}
SitemapGenerator::create($link)->hasCrawled(function (Url $url) {
if ($url->segment(1) === 'uploads') {
return;
}
return $url;
})->writeToFile($path);
return response()->json('success');
}
希望这对你有用。
我正在使用 spatie 生成 sitemap.xml。它按预期正常工作。但根据某些要求,我不想在 sitemap.xml.
中包含任何图像 url这是我的代码 -
public function sitemap(){
$link = Website::where('adminId', Auth::user()->id)->value('link');
$path = public_path('uploads/'.Auth::user()->id.'/sitemap.xml');
if (file_exists($path)) {
File::delete($path);
fopen($path, 'w');
} else {
fopen($path, 'w');
}
SitemapGenerator::create($link)->writeToFile($path);
return response()->json('success');
}
目前我的 sitemap.xml
带有图像链接的东西看起来像这样 -
<url>
<loc>http://www.example.com/uploads/3/page/anahera/1591769129-4412.jpeg</loc>
<lastmod>2020-06-23T11:22:59+12:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://www.example.com/uploads/3/page/anahera/1591769136-7646.jpeg</loc>
<lastmod>2020-06-23T11:22:59+12:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
有什么方法可以从 sitemap.xml 中删除这些图像链接?
感谢您的帮助。
请遵循文档的这一部分 - spatie。这并不是特别省略图像,但是如果您的 url 中有任何特定格式的图像 link - http://www.example.com/uploads
然后尝试获取 segment(1)
并进行比较,因此这部分文档将工作。
以你的情况为例-
public function sitemap(){
$link = Website::where('adminId', Auth::user()->id)->value('link');
$path = public_path('uploads/'.Auth::user()->id.'/sitemap.xml');
if (file_exists($path)) {
File::delete($path);
fopen($path, 'w');
} else {
fopen($path, 'w');
}
SitemapGenerator::create($link)->hasCrawled(function (Url $url) {
if ($url->segment(1) === 'uploads') {
return;
}
return $url;
})->writeToFile($path);
return response()->json('success');
}
希望这对你有用。