diff --git a/CHANGELOG.md b/CHANGELOG.md index e62b28d8ba..211f6f5319 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ - Fix: support `alsoKnownAs` from remote actors as either array or unwrapped singleton - Fix: ローカルに存在しないリモートアカウントに対するアカウント削除リクエストを受信した際に、そのユーザーを新規作成して削除する挙動を修正 - Fix: ID生成アルゴリズムにULIDを使用している場合にMisskeyが正しく動作しない問題を修正 +- Fix: robots.txtの内容を調整 ## 2026.3.2 diff --git a/packages/backend/assets/robots.txt b/packages/backend/assets/robots.txt deleted file mode 100644 index dc17e04e3f..0000000000 --- a/packages/backend/assets/robots.txt +++ /dev/null @@ -1,4 +0,0 @@ -user-agent: * -allow: / - -# todo: sitemap diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts index 24bc619e79..49a802632f 100644 --- a/packages/backend/src/server/web/ClientServerService.ts +++ b/packages/backend/src/server/web/ClientServerService.ts @@ -396,7 +396,34 @@ export class ClientServerService { }); fastify.get('/robots.txt', async (request, reply) => { - return await reply.sendFile('/robots.txt', staticAssets); + const disallowedPaths = [ + '/settings', + '/admin', + '/custom-emojis-manager', + '/avatar-decorations', + '/share', + '/my', + '/api', + '/inbox', + '/oauth', + '/proxy', + '/url', + ]; + + if (this.meta.ugcVisibilityForVisitor === 'none') { + disallowedPaths.push( + '/@', + '/notes', + ); + } + + let content = `User-agent: *\n`; + content += disallowedPaths.map((path) => `Disallow: ${path}`).join('\n') + '\n'; + content += 'Allow: /\n'; + content += '\n# todo: sitemap\n'; + + reply.header('Content-Type', 'text/plain; charset=utf-8'); + return await reply.send(content); }); // OpenSearch XML