This project is not covered by Drupal’s security advisory policy.
Background
When porting a static HTML site to a Drupal site, you often encounter this problem:
For the legacy site, it has a link: http://www.example-legacy.com/path/to/directory/index.html
and you do not want to change this link; and its Apache configure file declares that DirectoryIndex index.html, index.php
.
On the new new Drupal site, you create a node with nid = 100 and duplicate the content of http://www.example-legacy.com/path/to/directory/index.html
. Thanks to Path module and Clean URL feature, you can set http://www.example-drupal.com/node/100
's URL path as path/to/directory/index.html
.
By doing this, you guarantee that a visit to http://www.example-drupal.com/path/to/directory/index.html
gets the same content as http://www.example-legacy.com/path/to/directory/index.html
.
So far, so good.
But what if your visitors go to http://www.example-drupal.com/path/to/directory
? Unfortunately, as they are visiting a path alias, not a physical path, they will not be able to get http://www.example-drupal.com/path/to/directory/index.html
automatically, even on the new Drupal site's Apache configure file, it also declares that DirectoryIndex index.html, index.php
, as it only works for physical directory.
Worse more, in many cases, http://www.example-legacy.com/path/to/directory
instead of http://www.example-legacy.com/path/to/directory/index.html
is provided to visitors.
Therefore, after porting the site, we must make sure that a visit to http://www.example-drupal.com/path/to/directory
must be able to locate DirectoryIndex
files declared by the legacy site.
For example, if a legacy site declares that DirectoryIndex index.html, index.php
, then for visits to http://www.example-drupal.com/path/to/directory
, Drupal must first look for http://www.example-drupal.com/path/to/directory/index.html
, and if not found, try http://www.example-drupal.com/path/to/directory/index.php
again. If still not found, gives 404 Page Not Found error.
Sometimes, for somehow, we want to redirect all 404 visits to another website. For example, if http://www.example-drupal.com/path/to/directory/index.php
is not found, we want to redirect visits to http://www.example-legacy.com/path/to/directory/index.php
to see if this URL exists.
About this module
This module is developed to fix aforementioned problem. You can tell the module what string (file name) is to be appended to the end of a path if given path is not found.
For example, given path is http://www.example-drupal.com/some/directory
and legacy site declares that DirectoryIndex welcome.htm, index.html
. If http://www.example-drupal.com/some/directory
does not exist, the module will try to find URL path www.example-drupal.com/some/directory/welcome.htm
and www.example-drupal.com/some/directory/index.html
respectively. If both fails, and if an external site www.example-legacy.com/archive
is specified, this module will redirect visits to www.example-legacy.com/archive/some/directory
to see if it exists.
See also
Project information
- Created by minghui.yu on , updated
- This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.