Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions resources/views/layouts/app.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,13 @@
if (isset($page)) {
$page_tree = app('request')->attributes->get('page_tree');
$meta_robots = $page->getMetaRobots($page_tree);
} elseif ($is_manage_page || in_array(\Route::currentRouteName(), [
'show_login_form', 'login',
'show_register_form', 'register',
'register.confirmToken', 'register.storeToken',
'password.request', 'password.reset',
])) {
$meta_robots = 'noindex, nofollow';
}
@endphp
@if ($meta_robots)
Expand Down
56 changes: 56 additions & 0 deletions tests/Feature/Auth/NoIndexMetaRobotsTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?php

namespace Tests\Feature\Auth;

use App\Models\Core\Configs;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;

/**
* ログイン・ユーザー登録・パスワード再設定の各画面が、検索エンジン向けに
* noindexを出力し続けることを守る。Route::currentRouteName()による判定は
* ルート名変更時に静かに機能しなくなるため、回帰検知の目的で用意する。
*/
class NoIndexMetaRobotsTest extends TestCase
{
use RefreshDatabase;

private const NOINDEX_TAG = '<meta name="robots" content="noindex, nofollow">';

public function testLoginPageHasNoIndexMetaRobots()
{
$response = $this->get('/login');

$response->assertOk();
$response->assertSee(self::NOINDEX_TAG, false);
}

public function testRegisterPageHasNoIndexMetaRobots()
{
Configs::factory()->create([
'category' => 'user_register',
'name' => 'user_register_enable',
'value' => '1',
'additional1' => 1,
]);

$response = $this->get('/register');

$response->assertOk();
$response->assertSee(self::NOINDEX_TAG, false);
}

public function testPasswordResetPageHasNoIndexMetaRobots()
{
Configs::factory()->create([
'category' => 'base',
'name' => 'base_login_password_reset',
'value' => '1',
]);

$response = $this->get('/password/reset');

$response->assertOk();
$response->assertSee(self::NOINDEX_TAG, false);
}
}
Loading