{"id":82591,"date":"2026-08-18T05:27:54","date_gmt":"2026-08-18T09:27:54","guid":{"rendered":"https:\/\/litextension.com\/blog\/?p=82591"},"modified":"2026-08-25T01:42:04","modified_gmt":"2026-08-25T05:42:04","slug":"drupal-redirect-guide","status":"publish","type":"post","link":"https:\/\/litextension.com\/blog\/drupal-redirect-guide\/","title":{"rendered":"Drupal Redirect Made Simple: A Step-by-Step Guide (2026)"},"content":{"rendered":"<p>Setting up a<strong> Drupal redirect<\/strong> may seem straightforward, but an incorrect or missing rule can send visitors to a 404 page and prevent search engines from finding the new destination. This often happens when you change URL aliases, restructure content, or migrate an entire website.<\/p>\n<p>To help you manage these URL changes properly, we have created this guide covering 4 redirect methods:<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/litextension.com\/blog\/drupal-redirect-guide\/#1-using-the-redirect-module\">Using the Drupal Redirect module<\/a>;<\/strong><\/li>\n<li><strong><a href=\"https:\/\/litextension.com\/blog\/drupal-redirect-guide\/#2-using-htaccess-in-apache\">Adding rules to the Apache .htaccess file<\/a>;<\/strong><\/li>\n<li><strong><a href=\"https:\/\/litextension.com\/blog\/drupal-redirect-guide\/#3-programmatically-for-developers\">Creating redirects programmatically in a custom module<\/a>;<\/strong><\/li>\n<\/ul>\n<p>We\u2019ll also cover redirect types, common errors, and useful companion modules. Keep reading for more!<\/p>\n<hr \/>\n<h2>What Is a Drupal Redirect? (And How It Differs from an Alias)<\/h2>\n<p>A Drupal redirect automatically sends visitors and search engines from one URL to another. For example, if you change a page from<strong> \/summer-sale<\/strong> to <strong>\/seasonal-offers<\/strong>, a redirect ensures that anyone visiting the old URL reaches the new page instead of encountering a 404 error.<\/p>\n<p>Redirects are particularly important when you rename pages, reorganize your site structure, remove content, or migrate a website to or from Drupal. When configured correctly, they help maintain access to your content and preserve the SEO signals associated with old URLs.<\/p>\n<p>Drupal redirects are often confused with URL aliases because both affect the URLs visitors see. However:<\/p>\n<ul>\n<li>A <strong>URL alias<\/strong> gives an existing Drupal path a cleaner address, such as changing <code>\/node\/25<\/code> to <code>\/about-us<\/code>.<\/li>\n<li>A <strong>redirect<\/strong> forwards one URL to another, such as sending <code>\/about-our-company<\/code> to <code>\/about-us<\/code>.<\/li>\n<\/ul>\n<p>When you change an alias, you should redirect the old one to the new URL so existing links continue to work.<\/p>\n<p><strong>Note:<\/strong> Drupal core supports URL aliases through the Path module. To manage redirects in the Drupal admin interface, you will generally need to install a contributed module such as the<a href=\"https:\/\/www.drupal.org\/project\/redirect\" target=\"_blank\" rel=\"nofollow noopener\"> Redirect module<\/a>.<\/p>\n<hr \/>\n<h2>Types of Drupal Redirects<\/h2>\n<p>Drupal offers several types of redirects, each serving a specific purpose for managing URL changes and improving website performance. Understanding these types is essential for selecting the right redirect method based on your goals. Below are the most common types of Drupal redirect and their use cases.<\/p>\n<figure id=\"attachment_82603\" aria-describedby=\"caption-attachment-82603\" style=\"width: 1280px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"size-full wp-image-82603\" src=\"https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/types-of-drupal-redirect.webp\" alt=\"Types of Drupal redirect\" width=\"1280\" height=\"960\" srcset=\"https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/types-of-drupal-redirect.webp 1280w, https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/types-of-drupal-redirect-300x225.webp 300w, https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/types-of-drupal-redirect-1024x768.webp 1024w, https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/types-of-drupal-redirect-768x576.webp 768w\" sizes=\"(max-width: 1280px) 100vw, 1280px\" \/><figcaption id=\"caption-attachment-82603\" class=\"wp-caption-text\">Types of Drupal redirect<\/figcaption><\/figure>\n<p><strong>1. 301 Redirect (Permanent redirect)<\/strong><\/p>\n<p>This type of redirect indicates that a page has been permanently moved to a new URL. It is the most SEO-friendly option because it transfers the page&#8217;s ranking power to the new location. You should use a 301 redirect when merging pages, updating URLs, or moving your site to a new domain.<\/p>\n<p><strong>2. 302 Redirect (Temporary redirect)<\/strong><\/p>\n<p>A 302 redirect signals that the move is temporary and that the original URL will be restored later. This type of redirect is useful for short-term promotions or A\/B testing, as search engines do not pass link equity to the new URL.<\/p>\n<p><strong>3. 307 Redirect (Temporary redirect with method retention)<\/strong><\/p>\n<p>A 307 redirect is similar to a 302 but maintains the original request method (e.g., POST). It is ideal for ensuring that forms, search queries, or API calls are processed correctly without altering the request behavior.<\/p>\n<p><strong>4. Meta Refresh Redirect<\/strong><\/p>\n<p>This is a client-side redirect that automatically forwards users to a new page after a few seconds, typically seen in &#8220;If you are not redirected in five seconds, click here.&#8221; Although it is often used for announcements or countdown pages, it is less SEO-friendly than server-side redirects like 301 or 302.<\/p>\n<p>By understanding these types and their functions, you can effectively manage URL changes, maintain SEO value, and improve user experience on your Drupal site.<\/p>\n<hr \/>\n<h2>When Should You Use a Drupal Redirect?<\/h2>\n<p>As your Drupal site grows, URLs may change for many reasons, from a simple page update to a complete website migration. In these cases, redirects help visitors reach the right content without running into broken links. You should use one when:<\/p>\n<ul>\n<li><strong>Changing a URL alias: <\/strong>Redirect the old alias to the new one so bookmarks, backlinks, and search results continue to work.<\/li>\n<li><strong>Deleting or merging pages: <\/strong>Send visitors to the closest relevant replacement instead of leaving them on a 404 page.<\/li>\n<li><strong>Restructuring your website: <\/strong>Maintain access to content when categories, paths, or URL patterns change. In this scenario, don\u2019t forget to run a <a href=\"https:\/\/litextension.com\/blog\/drupal-export\/\" target=\"_blank\" rel=\"noopener\">Drupal export<\/a> first before making any changes to your site structure. This way, you\u2019ll have a safety net to fall back to when things go wrong.<\/li>\n<li><strong>Migrating your website: <\/strong>Map old URLs to their corresponding pages on the new domain or platform.<\/li>\n<li><strong>Managing duplicate URLs: <\/strong>Redirect alternative URL versions to the preferred canonical address.<\/li>\n<li><strong>Running temporary campaigns or maintenance: <\/strong>Temporarily send visitors to another page, then restore the original URL later.<\/li>\n<\/ul>\n<p>The key is to match each old URL with the most relevant destination rather than redirecting everything to your homepage. Then, choose a 301 redirect for permanent changes or a 302\/307 redirect when the move is temporary.<\/p>\n<p>If these URL changes are part of a full website replatforming, our LitExtension migration service can help you transfer your store data and manage the technical work.<\/p>\n<div class=\"cta-detail\">\n<div>\n<p class=\"title\"><strong><span style=\"font-size: 28px;\">Store Migration Made Easy With LitExtension!<\/span><\/strong><\/p>\n<p class=\"cta-desc\">LitExtension offers great migration solutions that help you transfer your data from the current eCommerce platform to a new one accurately, painlessly with utmost security.<\/p>\n<p><a class=\"btn-frame\" href=\"https:\/\/litextension.com\/migration-services\/all-in-one-data-migration-service.html?utm_source=blog&amp;utm_medium=display&amp;utm_campaign=ctabox&amp;utm_term=aurora&amp;utm_content=drupalredirect\" target=\"_blank\" rel=\"noopener\">MIGRATE WITH LITEXTENSION NOW!<\/a><\/p>\n<\/div>\n<div><img decoding=\"async\" class=\"size-medium wp-image-78213\" src=\"https:\/\/litextension.com\/blog\/wp-content\/uploads\/2024\/09\/2-08-1.png\" alt=\"All-in-One Migration Service\" \/><\/div>\n<\/div>\n<hr \/>\n<h2>How to Create Drupal Redirects in 3 Methods<\/h2>\n<p>There are three common ways to create Drupal redirects, depending on your technical experience and how much control you need. The Redirect module is the most accessible option, while .htaccess and programmatic redirects are better suited to server-level or custom requirements. Let\u2019s go through each method below.<\/p>\n<h3>1. Using the Redirect Module<\/h3>\n<p>The<a href=\"https:\/\/www.drupal.org\/project\/redirect\" target=\"_blank\" rel=\"nofollow noopener\"> Drupal Redirect module<\/a> is suitable for creating and managing individual redirects without editing server files or writing code.<\/p>\n<p><strong>Step 1:<\/strong> If the module is not installed, open a terminal in your Drupal project\u2019s root directory and run:<\/p>\n<pre>composer require drupal\/redirect<\/pre>\n<p>Then sign in to Drupal, go to Extend, select Redirect, and click Install. You will need permission to install and administer modules.<\/p>\n<p><strong>Step 2:<\/strong> Navigate to Configuration &gt; Search and metadata &gt; URL redirects. You can also open the page directly at:<\/p>\n<pre>\/admin\/config\/search\/redirect<\/pre>\n<p>Review the existing list first to avoid creating duplicate or conflicting redirects.<\/p>\n<p><strong>Step 3:<\/strong> Click Add redirect and complete the form. For example, to send <strong>https:\/\/yourdomain.com\/old-services<\/strong> to <strong>https:\/\/yourdomain.com\/services<\/strong>, you can enter as follow:<\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><strong>Field<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>What to enter<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>Example<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Path \/ from<\/td>\n<td>The old path, normally without the domain name or leading slash<\/td>\n<td>old-services<\/td>\n<\/tr>\n<tr>\n<td>To<\/td>\n<td>An internal Drupal path, content item, or absolute external URL<\/td>\n<td>\/services or https:\/\/example.com\/services<\/td>\n<\/tr>\n<tr>\n<td>Redirect status<\/td>\n<td>The HTTP status that describes the move<\/td>\n<td>301 Moved Permanently<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Step 4:<\/strong> Choose the redirect status:<\/p>\n<ul>\n<li><strong>301 Moved Permanently:<\/strong> For permanent URL changes, merged pages, or website migrations.<\/li>\n<li><strong>302 Found:<\/strong> For temporary campaigns, maintenance, or testing.<\/li>\n<\/ul>\n<p>Other statuses are available, but 301 and 302 cover most content redirects.<\/p>\n<p><strong>Step 5:<\/strong> Click Save, then open the old URL in an incognito window to confirm it reaches the correct page without a redirect loop. You can also verify the response with:<\/p>\n<pre>curl -I https:\/\/yourdomain.com\/old-services<\/pre>\n<p>A permanent redirect should return a 301 status and the correct destination in the Location header.<\/p>\n<h3>2. Using .htaccess in Apache<\/h3>\n<p>If your Drupal site runs on Apache, you can create redirects directly in the .htaccess file. This server-level method is fast and useful for permanent redirects, domain changes, or URL patterns, but it requires access to your website files.<\/p>\n<p><strong>Step 1:<\/strong> Connect to your server through your hosting file manager, FTP, or SSH. Open the Drupal root directory and locate the .htaccess file. Since it is a hidden file, you may need to enable<strong> Show hidden files<\/strong>.<\/p>\n<p><strong>Step 2:<\/strong> Download or copy the current .htaccess file as a backup before editing it. A syntax error can make the entire website unavailable.<\/p>\n<p><strong>Step 3:<\/strong> Find the existing <code>RewriteEngine<\/code> on line. Add your custom redirects after it but before Drupal\u2019s main rewrite rules:<\/p>\n<pre># Custom redirects\r\nRewriteRule ^old-services\/?$ https:\/\/yourdomain.com\/services [R=301,L]<\/pre>\n<p>This redirects both <code>\/old-services<\/code> and <code>\/old-services\/<\/code> to <code>\/services<\/code>.<\/p>\n<p><strong>Step 4:<\/strong> Replace:<\/p>\n<ul>\n<li><strong>old-services<\/strong> with the old URL path, without the domain or leading slash.<\/li>\n<li><strong>https:\/\/yourdomain.com\/services<\/strong> with the complete destination URL.<\/li>\n<li><strong>301<\/strong> with <strong>302<\/strong> if the redirect is temporary.<\/li>\n<\/ul>\n<p>The<strong> R=301<\/strong> flag returns a permanent redirect, while L tells Apache to stop processing additional rewrite rules after a match.<\/p>\n<p><strong>Step 5:<\/strong> For several individual pages, add one rule per URL:<\/p>\n<pre>RewriteRule ^old-about\/?$ https:\/\/yourdomain.com\/about [R=301,L]\r\nRewriteRule ^old-contact\/?$ https:\/\/yourdomain.com\/contact [R=301,L]\r\nRewriteRule ^old-services\/?$ https:\/\/yourdomain.com\/services [R=301,L]<\/pre>\n<p>If an entire directory has moved, you can use a capture group:<\/p>\n<pre>RewriteRule ^old-blog\/(.*)$ https:\/\/yourdomain.com\/blog\/$1 [R=301,L]<\/pre>\n<p>For example, <code>\/old-blog\/drupal-guide<\/code> will redirect to <code>\/blog\/drupal-guide<\/code>. Test pattern-based rules carefully because they may affect more URLs than intended.<\/p>\n<p><strong>Step 6:<\/strong> Save the file and upload it back to the Drupal root directory if necessary. Then open the old URLs in an incognito window and confirm that they reach the correct destinations without chains or loops.<\/p>\n<p>You can also verify the response from the command line:<\/p>\n<pre>curl -I https:\/\/yourdomain.com\/old-services<\/pre>\n<p>A successful permanent redirect should return <strong>301 Moved Permanently<\/strong> and show the correct destination in the <code>Location header<\/code>.<\/p>\n<p>If the website returns a <strong>500 Internal Server Error<\/strong>, restore your backup immediately and check the rule syntax or confirm that Apache\u2019s mod_rewrite module and .htaccess overrides are enabled.<\/p>\n<h3>3. Programmatically (for developers)<\/h3>\n<p>For redirects that depend on custom logic, permissions, route parameters, or other runtime conditions, developers can define a route in a custom Drupal module and return a redirect response from its controller.<\/p>\n<p><strong>Step 1:<\/strong> In your custom module, create or open the routing file. For a module named <code>custom_redirect<\/code>, the file should be:<\/p>\n<pre>modules\/custom\/custom_redirect\/custom_redirect.routing.yml<\/pre>\n<p>Add a route for the old URL:<\/p>\n<pre>custom_redirect.old_services:\r\n\r\npath: '\/old-services'\r\n\r\ndefaults:\r\n\r\n_controller: '\\Drupal\\custom_redirect\\Controller\\RedirectController::oldServices'\r\n\r\nrequirements:\r\n\r\n_permission: 'access content'<\/pre>\n<p>This tells Drupal to call the <code>oldServices()<\/code> method whenever someone accesses <code>\/old-services<\/code>.<\/p>\n<p><strong>Step 2:<\/strong> Create the controller file at:<\/p>\n<pre>modules\/custom\/custom_redirect\/src\/Controller\/RedirectController.php<\/pre>\n<p>Then add:<\/p>\n<pre>&lt;?php\r\n\r\nnamespace Drupal\\custom_redirect\\Controller;\r\n\r\nuse Drupal\\Core\\Routing\\LocalRedirectResponse;\r\nuse Drupal\\Core\\Url;\r\n\r\nclass RedirectController {\r\n\r\npublic function oldServices(): LocalRedirectResponse {\r\n$url = Url::fromRoute(\r\n'system.admin_content',\r\n[],\r\n['absolute' =&gt; TRUE]\r\n)-&gt;toString();\r\n\r\nreturn new LocalRedirectResponse($url, 301);\r\n}\r\n\r\n}<\/pre>\n<p>Replace <code>system.admin_content<\/code> with the route name of your destination. You can also pass route parameters, such as a node ID:<\/p>\n<pre>$url = Url::fromRoute(\r\n'entity.node.canonical',\r\n['node' =&gt; 42],\r\n['absolute' =&gt; TRUE]\r\n\r\n)-&gt;toString();<\/pre>\n<p>Step 3: To redirect to an external website, use <code>TrustedRedirectResponse<\/code> instead:<\/p>\n<pre>use Drupal\\Core\\Routing\\TrustedRedirectResponse;\r\n\r\nreturn new TrustedRedirectResponse(\r\n'https:\/\/example.com\/services',\r\n301\r\n\r\n);<\/pre>\n<p>Use <code>LocalRedirectResponse<\/code> for destinations on the same Drupal site. Only use <code>TrustedRedirectResponse<\/code> when the external destination is known and trusted.<\/p>\n<p><strong>Step 4:<\/strong> Enable the custom module if necessary, then rebuild Drupal\u2019s cache so the new route is registered:<\/p>\n<pre>drush cr<\/pre>\n<p><strong>Step 5:<\/strong> Visit <code>\/old-services<\/code> and confirm that it reaches the correct destination. You can also use curl -I to verify the status code and Location header.<\/p>\n<p>This method is useful for conditional or dynamic redirects, but it requires code deployment whenever the rule changes. For redirects that content managers need to update regularly, the Redirect module is usually more practical.<\/p>\n<hr \/>\n<h2>Companion Modules Worth Knowing<\/h2>\n<p>The Redirect module covers most day-to-day URL changes, but a few companion modules can make redirects easier to detect, automate, and manage at scale:<\/p>\n<ul>\n<li><strong>Pathauto<\/strong>: Automatically generates readable URL aliases for content, taxonomy terms, and users based on predefined patterns. When used with Redirect, Drupal can create a redirect from the old alias whenever an alias changes, helping prevent broken links after content updates.<\/li>\n<li><strong>Redirect 404: <\/strong>A submodule included with Redirect that records URLs returning 404 errors. You can review how often each missing URL is requested and create a redirect directly from the report. This is especially useful after a redesign or migration, although high-traffic sites should monitor the additional logging.<\/li>\n<li><strong>Redirect Domain: <\/strong>Another submodule included with Redirect. It supports domain-level and wildcard redirects, making it useful when moving from an old domain to a new one or applying the same rule across a group of URLs.<\/li>\n<\/ul>\n<p>You do not need to enable every module. Pathauto is helpful for consistent URL creation, Redirect 404 supports broken-link monitoring, and Redirect Domain is mainly needed for larger domain or migration changes.<\/p>\n<hr \/>\n<h2>Troubleshoot Common Errors While Performing Drupal Redirects<\/h2>\n<p>If a Drupal redirect does not work as expected, start with the source path, destination, cache, and any conflicting rules. Here are the most common issues:<\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><strong>Issue<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>What to check<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>Redirect does not work<\/strong><\/td>\n<td>Confirm that the Redirect module and rule are enabled, the source path is correct, and Drupal\u2019s cache has been cleared.<\/td>\n<\/tr>\n<tr>\n<td><strong>Redirect leads to a 404 page<\/strong><\/td>\n<td>Check that the destination URL is correct, published, and publicly accessible.<\/td>\n<\/tr>\n<tr>\n<td><strong>Too many redirects<\/strong><\/td>\n<td>Look for rules that redirect back to the source URL or send two URLs to each other.<\/td>\n<\/tr>\n<tr>\n<td><strong>Redirect chain (A \u2192 B \u2192 C)<\/strong><\/td>\n<td>Update the first rule so A points directly to the final destination, C.<\/td>\n<\/tr>\n<tr>\n<td><strong>Redirect opens the wrong page<\/strong><\/td>\n<td>Review wildcard, domain-level, and .htaccess rules that may be matching too many URLs.<\/td>\n<\/tr>\n<tr>\n<td><strong>An old 301 redirect still appears<\/strong><\/td>\n<td>Test in an incognito window and clear Drupal, browser, CDN, and proxy caches.<\/td>\n<\/tr>\n<tr>\n<td><strong>.htaccess rule does not run<\/strong><\/td>\n<td>Confirm that mod_rewrite and .htaccess overrides are enabled, and place the rule before Drupal\u2019s main rewrite rules.<\/td>\n<\/tr>\n<tr>\n<td><strong>The site returns a 500 error<\/strong><\/td>\n<td>Restore the previous .htaccess file and check the new rule for syntax errors.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>After making changes, test the old URL again and use curl -I or browser developer tools to confirm the status code and final destination.<\/p>\n<hr \/>\n<h2>Bulk Redirects During a Site Migration<\/h2>\n<p>The Drupal redirect methods above work well when you only have a few URLs to update. During a full website migration, however, creating hundreds or thousands of redirects manually through the Redirect module or .htaccess can become difficult to manage and test.<\/p>\n<p>This is where a bulk Drupal redirect plan becomes essential. Each eligible old URL should point directly to its corresponding page on the new store, helping visitors avoid 404 errors and reducing the risk of redirect chains after launch.<\/p>\n<p>With LitExtension\u2019s<a href=\"https:\/\/litextension.com\/drupalcommerce-migration.html?utm_source=blog&amp;utm_medium=display&amp;utm_campaign=anchortext&amp;utm_term=aurora&amp;utm_content=drupalredirect\" target=\"_blank\" rel=\"noopener\"> Drupal Migration Service<\/a>, you can select the Create 301 Redirects Additional Option during migration setup. For supported migration pairs, our service\u00a0 automatically redirects eligible old store URL.<\/p>\n<figure id=\"attachment_82013\" aria-describedby=\"caption-attachment-82013\" style=\"width: 1891px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"size-full wp-image-82013\" src=\"https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/01\/drupal-commerce-migration.webp\" alt=\"Migrate Drupal website with LitExtension experts\" width=\"1891\" height=\"808\" srcset=\"https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/01\/drupal-commerce-migration.webp 1891w, https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/01\/drupal-commerce-migration-300x128.webp 300w, https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/01\/drupal-commerce-migration-1024x438.webp 1024w, https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/01\/drupal-commerce-migration-768x328.webp 768w, https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/01\/drupal-commerce-migration-1536x656.webp 1536w\" sizes=\"(max-width: 1891px) 100vw, 1891px\" \/><figcaption id=\"caption-attachment-82013\" class=\"wp-caption-text\">Migrate Drupal website with LitExtension experts<\/figcaption><\/figure>\n<p>If your migration involves a large or complex URL structure, contact LitExtension experts to discuss your Drupal redirect requirements before launch.<\/p>\n<div class=\"cta-detail\">\n<div>\n<p class=\"title\"><strong><span style=\"font-size: 28px;\">Let Our Experts Handle Your Drupal Migration!<\/span><\/strong><\/p>\n<p class=\"cta-desc\">With the All-in-One Migration Service, our experts take care of everything, ensuring a seamless and stress-free migration.<\/p>\n<p><a class=\"btn-frame\" href=\"https:\/\/litextension.com\/drupalcommerce-migration.html?utm_source=blog&amp;utm_medium=display&amp;utm_campaign=ctabox&amp;utm_term=aurora&amp;utm_content=drupalredirect\" target=\"_blank\" rel=\"noopener\">BOOK FREE CONSULTATION<\/a><\/p>\n<\/div>\n<div><img decoding=\"async\" class=\"size-medium wp-image-78213\" src=\"https:\/\/litextension.com\/blog\/wp-content\/uploads\/2024\/09\/2-08-1.png\" alt=\"All-in-One Migration Service\" \/><\/div>\n<\/div>\n<hr \/>\n<h2>Drupal Redirect &#8211; FAQs<\/h2>\n<div class=\"faq faq-single-post\">\n<details open=\"open\">\n<summary>What is the difference between a redirect and a URL alias in Drupal?<\/summary>\n<div class=\"content\">\n<p>A URL alias gives an existing Drupal path a cleaner address, such as changing \/node\/25 to \/about-us. Meanwhile, a Drupal redirect forwards visitors from one URL to another, such as from \/old-about to \/about-us.<\/p>\n<\/div>\n<\/details>\n<details open=\"open\">\n<summary>When should I use a redirect?<\/summary>\n<div class=\"content\">\n<p>You should create a Drupal redirect when you change a URL alias, move or merge content, fix broken links, restructure your site, or complete a website migration. The redirect helps visitors and search engines reach the correct page instead of encountering a 404 error.<\/p>\n<\/div>\n<\/details>\n<details open=\"open\">\n<summary>What&#8217;s the difference between a 301 vs 302 redirect?<\/summary>\n<div class=\"content\">\n<p>The main difference lies in how long the URL change is expected to last:<\/p>\n<ul>\n<li><strong>301 Moved Permanently:<\/strong> The original URL has permanently moved to a new location. It is suitable for renamed pages, merged content, and website migrations.<\/li>\n<li><strong>302 Found: <\/strong>The original URL has moved temporarily and will be restored later. It is suitable for maintenance, short campaigns, and testing.<span style=\"font-weight: 400;\"><br \/>\n<\/span><\/li>\n<\/ul>\n<\/div>\n<\/details>\n<details open=\"open\">\n<summary>Does the Drupal Redirect module work with Drupal 10 and 11?<\/summary>\n<div>\n<p>Yes, the current Drupal Redirect module supports both Drupal 10 and Drupal 11. However, you should still review the latest release and requirements on<a href=\"https:\/\/www.drupal.org\/project\/redirect\" target=\"_blank\" rel=\"nofollow noopener\"> Drupal.org<\/a> before installing it.<\/p>\n<\/div>\n<\/details>\n<details open=\"open\">\n<summary>How do I create a redirect in Drupal?<\/summary>\n<div class=\"content\">\n<p>You can create a redirect by installing the Redirect module and navigating to <strong>Configuration &gt; Search<\/strong> <strong>and metadata &gt; URL redirects<\/strong>. From there, select <strong>Add redirect<\/strong>, enter the old path and new destination, choose an HTTP status, and click <strong>Save<\/strong>.<\/p>\n<\/div>\n<\/details>\n<\/div>\n<hr \/>\n<h2>Final Thoughts<\/h2>\n<p>In conclusion, managing Drupal redirect effectively is essential for maintaining a smooth user experience and preserving SEO rankings during website changes. Whether you use the Redirect module or configure redirects through Apache, it\u2019s crucial to choose the right method based on your needs.<\/p>\n<p>If you like this article, please don&#8217;t forget to check out other <a href=\"https:\/\/litextension.com\/blog\/ecommerce-platforms\/\" target=\"_blank\" rel=\"noopener\">eCommerce articles<\/a> on our website for more expert tips and insights.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Setting up a Drupal redirect may seem straightforward, but an incorrect or missing rule can send visitors to a 404 page and prevent search engines from finding the new destination. This often happens when you change URL aliases, restructure content, or migrate an entire website. To help you manage these URL changes properly, we have [&hellip;]<\/p>\n","protected":false},"author":82,"featured_media":82597,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","jnews-multi-image_gallery":[],"jnews_single_post":{"source_name":"","source_url":"","via_name":"","via_url":"","override_template":"0","override":[{"template":"1","single_blog_custom":"","parallax":"1","fullscreen":"1","layout":"right-sidebar","sidebar":"default-sidebar","second_sidebar":"default-sidebar","sticky_sidebar":"1","share_position":"bottom","share_float_style":"share-monocrhome","show_share_counter":"1","show_view_counter":"1","show_featured":"1","show_post_meta":"1","show_post_author":"1","show_post_author_image":"0","show_post_date":"1","post_date_format":"default","post_date_format_custom":"Y\/m\/d","show_post_category":"1","show_post_reading_time":"0","post_reading_time_wpm":"300","show_zoom_button":"0","zoom_button_out_step":"2","zoom_button_in_step":"3","show_post_tag":"0","show_prev_next_post":"1","show_popup_post":"0","number_popup_post":"1","show_author_box":"1","show_post_related":"0","show_inline_post_related":"0"}],"override_image_size":"0","image_override":[{"single_post_thumbnail_size":"no-crop","single_post_gallery_size":"crop-500"}],"trending_post":"0","trending_post_position":"meta","trending_post_label":"Trending","sponsored_post":"0","sponsored_post_label":"Sponsored by","sponsored_post_name":"","sponsored_post_url":"","sponsored_post_logo_enable":"0","sponsored_post_logo":"","sponsored_post_desc":"","disable_ad":"0","format":"standard"},"jnews_primary_category":{"id":"","hide":""},"footnotes":""},"categories":[16620,16700],"tags":[],"table_tags":[],"class_list":["post-82591","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ecommerce-platforms","category-platform-tutorials"],"uagb_featured_image_src":{"full":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect.webp",1164,768,false],"thumbnail":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect-150x150.webp",150,150,true],"medium":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect-300x198.webp",300,198,true],"medium_large":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect-768x507.webp",768,507,true],"large":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect-1024x676.webp",1024,676,true],"1536x1536":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect.webp",1164,768,false],"2048x2048":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect.webp",1164,768,false],"jnews-360x180":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect-360x180.webp",360,180,true],"jnews-750x375":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect-750x375.webp",750,375,true],"jnews-1140x570":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect-1140x570.webp",1140,570,true],"jnews-120x86":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect-120x86.webp",120,86,true],"jnews-350x250":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect-350x250.webp",350,250,true],"jnews-750x536":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect-750x536.webp",750,536,true],"jnews-1140x815":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect-1140x815.webp",1140,815,true],"jnews-360x504":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect-360x504.webp",360,504,true],"jnews-75x75":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect-75x75.webp",75,75,true],"jnews-350x350":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect-350x350.webp",350,350,true],"jnews-featured-750":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect.webp",750,495,false],"jnews-featured-1140":["https:\/\/litextension.com\/blog\/wp-content\/uploads\/2025\/02\/drupal-redirect.webp",1140,752,false]},"uagb_author_info":{"display_name":"Ani Duong","author_link":"https:\/\/litextension.com\/blog\/author\/aniduong\/"},"uagb_comment_info":0,"uagb_excerpt":"Setting up a Drupal redirect may seem straightforward, but an incorrect or missing rule can send visitors to a 404 page and prevent search engines from finding the new destination. This often happens when you change URL aliases, restructure content, or migrate an entire website. To help you manage these URL changes properly, we have&hellip;","_links":{"self":[{"href":"https:\/\/litextension.com\/blog\/wp-json\/wp\/v2\/posts\/82591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/litextension.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/litextension.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/litextension.com\/blog\/wp-json\/wp\/v2\/users\/82"}],"replies":[{"embeddable":true,"href":"https:\/\/litextension.com\/blog\/wp-json\/wp\/v2\/comments?post=82591"}],"version-history":[{"count":16,"href":"https:\/\/litextension.com\/blog\/wp-json\/wp\/v2\/posts\/82591\/revisions"}],"predecessor-version":[{"id":94159,"href":"https:\/\/litextension.com\/blog\/wp-json\/wp\/v2\/posts\/82591\/revisions\/94159"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/litextension.com\/blog\/wp-json\/wp\/v2\/media\/82597"}],"wp:attachment":[{"href":"https:\/\/litextension.com\/blog\/wp-json\/wp\/v2\/media?parent=82591"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litextension.com\/blog\/wp-json\/wp\/v2\/categories?post=82591"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litextension.com\/blog\/wp-json\/wp\/v2\/tags?post=82591"},{"taxonomy":"table_tags","embeddable":true,"href":"https:\/\/litextension.com\/blog\/wp-json\/wp\/v2\/table_tags?post=82591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}