This project is not covered by Drupal’s security advisory policy.

Clean Index PHP URL

Clean Index PHP URL redirects Drupal URLs that expose the index.php front controller to their clean equivalents.

For example:

/index.php/documents/report

is redirected to:

/documents/report

This helps prevent duplicate URLs, incorrect document links, externally generated links containing index.php, and inconsistent URLs being indexed by search engines.

Features

  • Works immediately after installation with no required configuration.
  • Uses a permanent 301 redirect by default.
  • Can be configured to use a temporary 302 redirect.
  • Preserves the complete path and query string.
  • Supports Drupal installations located in a subdirectory.
  • Excludes update.php, install.php, cron.php, and authorize.php by default.
  • Allows additional excluded paths to be configured.
  • Provides optional redirect logging through Drupal's logging system.
  • Processes only main GET and HEAD requests, preventing submitted form data from being lost.
  • Supports Drupal 10 and Drupal 11.

Post-installation

Enable the module normally. No configuration is required for the default behavior.

Optional settings are available at:

Administration > Configuration > Search and metadata > Clean Index PHP URL

The configuration page allows administrators to select the redirect status code, manage excluded paths, and enable redirect logging.

Additional requirements

No additional modules or third-party libraries are required.

The web server must already support Drupal clean URLs for the redirect destination to work.

Similar projects

The Redirect module can provide related URL normalization functionality and is suitable for sites requiring a complete redirect management solution.

Legacy Redirect handles older index.php?q=path URL formats. Clean Index PHP URL instead focuses specifically on removing the /index.php/ path component from otherwise valid modern Drupal URLs.

Project information

Releases