You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

The website currently has the following redirect patterns that are implemented in a .htaccess file. The source for this file is found in the docs/build_version_docs/artifacts folder.

Using an environment var for the default version, we can flag it throughout the htaccess file:

RewriteRule .* - [E=default_version:/versions/master]

Then we use this variable with:

%{ENV:default_version}

Current Implementation

The first entity is the pattern to match, the second is the destination, and the third is a test URL. Prod for now doesn't use the default version and just redirects to the root. 

Our current default version is master. Either way the default version should be recent information. Queries to old pages are redirected.

Legacy URLsNew URL (desired redirect)Prod Test URLStaging Test URL
^get_started/why_mxnet.html$

%{ENV:default_version}/faq/why_mxnet.html

/versions/master/faq/why_mxnet.html

https://mxnet.incubator.apache.org/get_started/why_mxnet.htmlhttp://34.201.8.176/get_started/why_mxnet.html
^get_started.*$

%{ENV:default_version}/install/

/versions/master/install/

https://mxnet.incubator.apache.org/get_startedhttp://34.201.8.176/get_started
^how_to.*$

%{ENV:default_version}/faq/

/versions/master/faq/

https://mxnet.incubator.apache.org/how_to/http://34.201.8.176/how_to
^api/python/symbol.html$

%{ENV:default_version}/api/python/symbol/symbol.html

/versions/master/api/python/symbol/symbol.html

https://mxnet.incubator.apache.org/api/python/symbol.htmlhttp://34.201.8.176/api/python/symbol.html
^community/index.html$

%{ENV:default_version}/community/contribute.html

/versions/master/community/contribute.html

https://mxnet.incubator.apache.org/community/index.htmlhttp://34.201.8.176/community/index.html


The goal for the following section is that any request to a resource of an old version is redirected to the default version.

http://34.201.8.176/architecture should go to http://34.201.8.176/versions/master/architecture

Content that should be freshNew URL (desired redirect)Prod Test URLStaging Test URL
^versions/[^\/]+/architecture/.*$

%{ENV:default_version}/architecture/

/versions/master/architecture/

https://mxnet.incubator.apache.org/architecture

http://mxnet.incubator.apache.org/versions/1.1.0/architecture/index.html

http://34.201.8.176/architecture

http://34.201.8.176/versions/1.1.0/architecture/index.html

^versions/[^\/]+/community/.*$

%{ENV:default_version}/community/

/versions/master/community/

https://mxnet.incubator.apache.org/community/index.html

https://mxnet.incubator.apache.org/versions/1.1.0/community/contribute.html

http://34.201.8.176/community/index.html

http://34.201.8.176/versions/1.1.0/community/index.html

^versions/[^\/]+/faq/.*$

%{ENV:default_version}/faq/

/versions/master/faq/

https://mxnet.incubator.apache.org/faq/

https://mxnet.incubator.apache.org/versions/1.1.0/faq/

http://34.201.8.176/faq/

http://34.201.8.176/versions/1.1.0/faq/

^versions/[^\/]+/gluon/.*$

%{ENV:default_version}/gluon/

/versions/master/gluon/

https://mxnet.incubator.apache.org/gluon/

https://mxnet.incubator.apache.org/versions/1.1.0/gluon/

http://34.201.8.176/gluon/

http://34.201.8.176/versions/1.1.0/gluon/

^versions/[^\/]+/install/.*$

%{ENV:default_version}/install/$1

/versions/master/install/$1

https://mxnet.incubator.apache.org/install/

https://mxnet.incubator.apache.org/versions/1.1.0/install/

https://mxnet.incubator.apache.org/install/index.html?platform=MacOS&language=Clojure&processor=CPU

http://34.201.8.176/install/

http://34.201.8.176/versions/1.1.0/install/

^versions/[^\/]+/tutorials/(.*)$

%{ENV:default_version}/tutorials/$1

/versions/master/tutorials/$1

/versions/master/tutorials/gluon/mnist.html

https://mxnet.incubator.apache.org/tutorials/

http://mxnet.incubator.apache.org/versions/master/

https://mxnet.incubator.apache.org/tutorials/gluon/mnist.html

http://mxnet.incubator.apache.org/versions/1.2.1/tutorials/gluon/mnist.html

http://34.201.8.176/tutorials/index.html

http://34.201.8.176/versions/master/tutorials/index.html

http://34.201.8.176/tutorials/gluon/mnist.html

http://34.201.8.176/versions/1.1.0/tutorials/gluon/mnist.html






Note that tutorials will carry the request for the particular tutorial over to the default version. Also, since some of the install links can carry a specific install type it might be good to add $1 to that one.


Possible expression to capture the requests listed above and meet the overall goals:

  1. Make sure requests to "root" resources go to /versions/master/$REQUEST
  2. Make sure requests to old version resource go to /versions/master/$REQUEST
  3. Allow requests on /api docs to go to the old version pages
  4. Search requests on old versions should work

^.*(versions\/[^\/]+)?(?<!master)\/(faq|community|install|gluon|tutorials|architecture)\/(.*)$

Redirect APIs that did not exist

Finally, we have several pages for API that don't exist and it is possible for the user to navigate to them. Instead of a broken page we give them a nice 404 or error message.


^versions/0.11.0/api/python/contrib/onnx.html /error/api.html
^versions/0.12.1/api/python/contrib/onnx.html /error/api.html
^versions/1.0.0/api/python/contrib/onnx.html /error/api.html
^versions/1.1.0/api/python/contrib/onnx.html /error/api.html

Test URL: http://mxnet.incubator.apache.org/versions/0.11.0/api/python/contrib/onnx.html

Test URL: http://34.201.8.176/versions/0.11.0/api/python/contrib/onnx.html

^versions/0.11.0/api/clojure/.*$ /error/api.html
^versions/0.12.1/api/clojure/.*$ /error/api.html
^versions/1.0.0/api/clojure/.*$ /error/api.html
^versions/1.1.0/api/clojure/.*$ /error/api.html
^versions/1.2.1/api/clojure/.*$ /error/api.html

Test URL: http://mxnet.incubator.apache.org/versions/0.11.0/api/clojure/

Test URL: http://34.201.8.176/versions/0.11.0/api/clojure/

Error Pages

ErrorDocument 404 https://mxnet.incubator.apache.org/error/404.html


For all other APIs it should allow the queries to go through.





  • No labels