<p>Based on your comments, I'd recommend creating a new <strong>entry type</strong> in your section.</p>

<p>Create a "Redirect" entry type which only contains a URL link (or an Entry field) so the page knows how to handle the redirect. For any entries that need to be converted to a redirect, simply swap the entry type to use this instead.</p>

<p>Then you can simply map that entry type to a redirect template:</p>

<pre><code>{% redirect entry.newUrl %}
</code></pre>

<p>I've done this, and it works well.</p>

CC BY-SA 4.0
2019-06-11T23:45:32.540Z
Thanks @lindsey-d. I had gone someway down that road, and thanks to Feedme I can import the data (important because while I am building the upgrade off to the side the production content is being updated which means I can't have too much manual entry to do)
Jack McKenzie
CC BY-SA 4.0
2019-06-11T21:20:06.567Z
2019-06-11T21:20:06.567Z
Lindsey D
<p>I'm upgrading a relatively large, but low budget, local government website from Craft 2 to Craft 3. The major remaining pain point is a replacement for the Craft 2 Reroute plugin, which is not available in the Craft 3 Plugin Store.</p>

<p>The main use of Reroute was redirecting existing URLs to other URLs within the site (and against my preferences to external URLs as well). The site is built around a strong hierarchy and quite often the parent page of "section" is redirected to the first child page (because the parent page serves as a conceptual folder and has no content on its own). And because Reroute worked well old entries/pages were not always deleted, just redirected to their new location or replacement pages by the content editors.</p>

<p>In Craft 3 we have Redirect plugin, Retour and Sprout Redirect, but as far as I can tell they only redirect non-existing URLs.</p>

<p>Now I could add a redirect Entry field to the various sections, and manually manage it that way, but it is quite a lot of work in the midst of an upgrade done by one little person (me).</p>

<p>So have I misunderstood that there are no existing plugins that will redirect existing URLs? Or am I missing an obviously easy way of doing this?</p>

CC BY-SA 4.0
2019-06-10T20:52:55.763Z
Retour (and I assume Sprout Redirect) doesn't attempt to handle a redirect until a 404 has officially been triggered. This means that the plugin doesn't get in the way or do any extra work until it's absolutely needed (which is theoretically a good thing).
Lindsey D
CC BY-SA 4.0
2019-06-10T20:53:37.450Z
I'm not sure I follow why you'd want to redirect _away_ from an existing entry. Would it be possible to just disable the entry, and allow a 404 to be triggered?
Lindsey D
CC BY-SA 4.0
2019-06-11T21:12:06.647Z
The reason that the entry remains live is that it is used as part of the site hierarchy and thereby show as menu items, and in site map and other navigation structures we have. In many sites I have worked in I am given hierarchies and the top page on each section is effect a folder or index page/item - so to prevent an extra click to the user they are redirected most often to the first child. On other occasions content editors want to send users from a child menu item across to another area in the site - a sort of a cross reference.
Jack McKenzie
<plugins><redirect><upgrades><redirection><reroute>
Craft 3 redirect of existing and non-existing URLs
# Craft 3 redirect of existing and non-existing URLs

(Asked by: username_0 on 2019-06-10)

I'm upgrading a relatively large, but low budget, local government website from Craft 2 to Craft 3. The major remaining pain point is a replacement for the Craft 2 Reroute plugin, which is not available in the Craft 3 Plugin Store.

The main use of Reroute was redirecting existing URLs to other URLs within the site (and against my preferences to external URLs as well). The site is built around a strong hierarchy and quite often the parent page of "section" is redirected to the first child page (because the parent page serves as a conceptual folder and has no content on its own). And because Reroute worked well old entries/pages were not always deleted, just redirected to their new location or replacement pages by the content editors.

In Craft 3 we have Redirect plugin, Retour and Sprout Redirect, but as far as I can tell they only redirect non-existing URLs.

Now I could add a redirect Entry field to the various sections, and manually manage it that way, but it is quite a lot of work in the midst of an upgrade done by one little person (me).

So have I misunderstood that there are no existing plugins that will redirect existing URLs? Or am I missing an obviously easy way of doing this?

**Tags:** plugins, redirect, upgrades, redirection, reroute
> **Comments:**
> **username_1**: Retour (and I assume Sprout Redirect) doesn't attempt to handle a redirect until a 404 has officially been triggered. This means that the plugin doesn't get in the way or do any extra work until it's absolutely needed (which is theoretically a good thing).  
> **username_1**: I'm not sure I follow why you'd want to redirect _away_ from an existing entry. Would it be possible to just disable the entry, and allow a 404 to be triggered?  
> **username_0**: The reason that the entry remains live is that it is used as part of the site hierarchy and thereby show as menu items, and in site map and other navigation structures we have. In many sites I have worked in I am given hierarchies and the top page on each section is effect a folder or index page/item - so to prevent an extra click to the user they are redirected most often to the first child. On other occasions content editors want to send users from a child menu item across to another area in the site - a sort of a cross reference.  

---

## 1 answers

### Answer by username_1 on 2019-06-11. Score: 4

Based on your comments, I'd recommend creating a new entry type in your section.
Create a "Redirect" entry type which only contains a URL link (or an Entry field) so the page knows how to handle the redirect. For any entries that need to be converted to a redirect, simply swap the entry type to use this instead.
Then you can simply map that entry type to a redirect template:
{% redirect entry.newUrl %}

I've done this, and it works well.

> **Comments:**
> **username_0**: Thanks @lindsey-d. I had gone someway down that road, and thanks to Feedme I can import the data (important because while I am building the upgrade off to the side the production content is being updated which means I can't have too much manual entry to do)  

---

