Drupal is a registered trademark of Dries Buytaert
Release: Leaflet 10.4.11 Minor update available for module leaflet (10.4.11). Release: Session Inspector 1.0.8 Minor update available for module session_inspector (1.0.8). Release: Migrate QA 2.0.4 Minor update available for module migrate_qa (2.0.4). Release: CKEditor Description List 3.0.0 Major update available for module ckeditor_descriptionlist (3.0.0). Release: FlowDrop 2.4.0 Minor update available for module flowdrop (2.4.0). Release: JWT Token Refresh 1.0.4 Minor update available for module jwt_token_refresh (1.0.4). Release: ConReg 1.0.0-beta1 First beta version released for module conreg (1.0.0-beta1). Release: AI Image Studio 1.0.0-beta8 New beta version released for module ai_image_studio (1.0.0-beta8). Usage Milestone: Role Theme Switcher Module role_theme_switcher crossed 1,000 active installs. Module Revived: Decoupled Router 2.0.7 Module decoupled_router updated after 11 months of inactivity (2.0.7).

URL Rewrite

1 sites No security coverage
View on drupal.org

This module rewrites old URLs to new URLs within HTML output before it's sent to the browser. It helps manage URL changes across a site by automatically updating links in content and other areas, without requiring manual edits everywhere.

Overview

Rewrites old URLs to new URLs in HTML output at render time. Any href attribute that matches a configured "old" path is replaced with the "new" path before the page is sent to the browser.

Use case

When changing URL structure across the site, links may still appear in many places (content body, link fields, views, templates, etc.). This module rewrites them in one place at response time so you don't have to update every occurrence.

Configuration

  • Configuration path: Admin → Configuration → System → URL Rewrite (/admin/config/system/url-rewrite)
  • Enable/disable: Turn rewriting on or off.
  • Skip admin: When enabled, no rewriting is done on paths under /admin.
  • URL mappings: The source of truth. Add From (old path) and To (new path) rows. Drupal uses these for rewriting at render time.
  • Generate JSON file at path (for other site): Optional. When set, saving the form writes a JSON file at this path (relative to Drupal root) with the same mappings. Share this file with WordPress so it can use the same rewrite rules.

Generated JSON format

When you set "Generate JSON file at path" and save, the module writes a file in this format:

{
  "mappings": [
    { "from": "/blog", "to": "/articles" },
    { "from": "/success-stories", "to": "/case-studies" }
  ]
}

WordPress can read this file and apply the same rewrite logic. Paths are matched by prefix: longest match wins (e.g. /blog before /articles).

  • Query strings and fragments are preserved.
  • Works for both absolute URLs (e.g. https://example.com/old-path) and relative URLs (/old-path).

Performance

  • Only runs on HTML responses.
  • Mappings from a JSON file are cached (invalidated when the file is updated).
  • A single pass over the response body replaces only href attribute values.

Activity

Tracked releases
1
Tracked since
Jun 2026
Latest release
1 month ago
Releases (12 mo)
1 ▲ from 0
Maintenance
Active

Releases

Version Type Release date
1.0.0 Stable Jun 30, 2026