diff --git a/Core/Email/Confirmation/Url.php b/Core/Email/Confirmation/Url.php index 2f685ace4840477db907c5d7cdce4f2116f350ac..a8269d72b0d683ef672f4771ded80cd16cda3181 100644 --- a/Core/Email/Confirmation/Url.php +++ b/Core/Email/Confirmation/Url.php @@ -13,6 +13,9 @@ use Minds\Entities\User; class Url { + /** @var string */ + const EMAIL_CONFIRMATION_PATH = '/email-confirmation'; + /** @var Config */ protected $config; @@ -46,8 +49,9 @@ class Url public function generate(array $params = []): string { return sprintf( - '%s?%s', - $this->config->get('site_url'), + '%s%s?%s', + rtrim($this->config->get('site_url'), '/'), + static::EMAIL_CONFIRMATION_PATH, http_build_query(array_merge($params, [ '__e_cnf_token' => $this->user->getEmailConfirmationToken(), ])), diff --git a/Core/SEO/Defaults.php b/Core/SEO/Defaults.php index 77ddb837e07c9f01c27ac39fb581c152f7252df6..8c69e0691a2c83850080c6d07035500ab6e42e7c 100644 --- a/Core/SEO/Defaults.php +++ b/Core/SEO/Defaults.php @@ -259,6 +259,14 @@ class Defaults ]; }); + // Do not index email confirmation and redirect OG to / + Manager::add(Core\Email\Confirmation\Url::EMAIL_CONFIRMATION_PATH, function ($slugs = []) { + return [ + 'og:url' => $this->config->site_url, + 'robots' => 'noindex' + ]; + }); + Manager::add('/wallet/tokens/transactions', function ($slugs = []) { $meta = [ 'title' => 'Transactions Ledger', diff --git a/Spec/Core/Email/Confirmation/UrlSpec.php b/Spec/Core/Email/Confirmation/UrlSpec.php index 1fb538bbe079310f4aa9139eb47f79f497816fe9..7b5b6dfde98cc4ca2dfdf17956eb60efa3f9dc18 100644 --- a/Spec/Core/Email/Confirmation/UrlSpec.php +++ b/Spec/Core/Email/Confirmation/UrlSpec.php @@ -40,6 +40,6 @@ class UrlSpec extends ObjectBehavior $this ->setUser($user) ->generate(['test' => 1, 'phpspec' => 'yes']) - ->shouldReturn('https://phpspec.minds.test/?test=1&phpspec=yes&__e_cnf_token=%7Etoken%7E'); + ->shouldReturn('https://phpspec.minds.test/email-confirmation?test=1&phpspec=yes&__e_cnf_token=%7Etoken%7E'); } }