Allows pages to specify alternative artifact locations for redirect.

Description

We need a way for sites that have been converted to use Guise Mummy, potentially with .xhtml extensions converted to .html (or with extensions removed altogether for clean URLs) to specify that the old names should be redirected (permanently) to the new names.

Initially the most straightforward way to do this would be to specify an "alternative name" in the XHTML metadata:

The value would be interpreted as a resource path relative to the final target resource path of the artifact. This implementation needs to support relative paths with backtracking, as well as alternate locations that are collections. Here are some examples of artifact target paths and their alt locations:

  • bar.html: alt location foo.html (Make foo.html redirect to bar.html.)

  • bar.html: alt location ../foo/bar.html (Make ../foo/foo.html redirect to bar.html.)

  • bar: alt location bar.xhtml (Make bar.xhtml redirect to bar.)

  • bar: alt location bar/ (Make bar/ redirect to bar.)

The latter is interesting because normally a web server will redirect foo/bar to foo/bar/ if the latter collection exists. In this example, however, a web site page had been deployed at e.g. foo/bar/index.html in the past (actually a framework that allowed actual contentent at foo/bar/, but now the page has been relocated to foo/bar (an HTML page with no extension), so foo/bar/ needs to redirect to foo/bar.

In the future (not in this ticket) once expressions are implemented, the following could be used to indicate "redirect from the old source name of this resource":

The S3 deployment will need to be updated with routing rules containing redirects. Tomcat embedded server will also need to be updated to support this, but this can be done in a separate ticket.

Environment

None

Assignee

Garret Wilson

Reporter

Garret Wilson

Labels

None

Components

Fix versions

Priority

Critical
Configure