Port SEO (duplicate content prevention) to 8.x-3.x
>>> [!note] Migrated issue
<!-- Drupal.org comment -->
<!-- Migrated from issue #2708771. -->
Reported by: [wim leers](https://www.drupal.org/user/99777)
>>>
<h3 id="summary-problem-motivation">Problem/Motivation</h3>
<p>Port:</p>
<ul>
<li><del><code>CDN_SEO_*</code> constants in <code>cdn.constants.inc</code></del></li>
<li><del><code>cdn_boot()</code> in <code>cdn.module</code></del></li>
<li><del><code>_cdn_seo_should_redirect()</code> in <code>cdn.module</code></del></li>
<li><del><code>cdn_admin_other_settings_form()</code> in <code>cdn.admin.inc</code></del></li>
<li><del><code>cdn_ui/help/admin-other-seo.html</code></del></li>
<li><del><code>CDNSEOTestCase</code> in tests/cdn.test</del></li>
</ul>
<h3 id="summary-proposed-resolution">Proposed resolution</h3>
<p>Should be implemented as a Stack middleware, because <code>hook_boot()</code> no longer exists in Drupal 8</p>
<p><del>Eventually should be published on <a href="http://stackphp.com/">http://stackphp.com/</a>, because this is not in any way Drupal-specific. (It's basically redirecting all user agents except the whitelisted ones to the canonical domain for all HTML content.)</del></p>
<h3 id="summary-remaining-tasks">Remaining tasks</h3>
<h3 id="summary-ui-changes">User interface changes</h3>
<h3 id="summary-api-changes">API changes</h3>
<h3 id="summary-data-model-changes">Data model changes</h3>
<p>Yes.</p>
> Related issue: [Issue #2294613](https://www.drupal.org/node/2294613)
> Related issue: [Issue #2424309](https://www.drupal.org/node/2424309)
> Related issue: [Issue #2678374](https://www.drupal.org/node/2678374)
issue