diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b0e2724706..b879b88f74 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -91,6 +91,7 @@ pages: stage: pages script: - mv website public + - cp .gitlab_pages_redirects public/_redirects dependencies: - website_job rules: diff --git a/.gitlab_pages_redirects b/.gitlab_pages_redirects new file mode 100644 index 0000000000..baa94384ba --- /dev/null +++ b/.gitlab_pages_redirects @@ -0,0 +1,54 @@ +# Redirects to golang module pages +/libvirt/libvirt-go /libvirt-go.html 200 +/libvirt/libvirt-go-xml /libvirt-go-xml.html 200 +/libvirt/go/libvirt /go/libvirt.html 200 +/libvirt/go/libvirtxml /go/libvirtxml.html 200 + +# Redirects to the download server +/libvirt/sources/* https://download.libvirt.org/:splat 301 +/libvirt/ruby/download/* https://download.libvirt.org/ruby/:splat 301 +/libvirt/maven2/org/libvirt* https://download.libvirt.org/maven2/org/libvirt/:splat 301 + +# Redirects to subproject pages +/libvirt/ruby/* https://ruby.libvirt.org/:splat 301 +/libvirt/ocaml/* https://ocaml.libvirt.org/:splat 301 +/libvirt/php/* https://php.libvirt.org/:splat 301 +/libvirt/libvirt-appdev-guide-python/en-US/html/* https://libvirt.gitlab.io/libvirt-appdev-guide-python/:splat: 301 +/libvirt/java.html https://java.libvirt.org 301 +# Redirect to the proper javadoc directory on the subproject page +/libvirt/sources/java/javadoc/* https://java.libvirt.org/javadoc/:splat 301 + +# Redirects from old gitweb location (see below) +/libvirt/git https://gitlab.com/libvirt/ 301 + +# The above rules are adapted from the following set of 'mod_rewrite' rules used +# originally on libvirt.org: +# +# RewriteRule ^/libvirt-go$ /libvirt-go.html [L] +# RewriteRule ^/libvirt-go-xml$ /libvirt-go-xml.html [L] +# RewriteRule ^/go/libvirt$ /go/libvirt.html [L] +# RewriteRule ^/go/libvirtxml$ /go/libvirtxml.html [L] +# RewriteRule ^/sources/(.*) https://download.libvirt.org/$1 [L] +# RewriteRule ^/ruby/download/(.*) https://download.libvirt.org/ruby/$1 [L] +# RewriteRule ^/(maven2/org/libvirt.*) https://download.libvirt.org/$1 [L] +# RewriteRule ^/ocaml/(.*) https://ocaml.libvirt.org/$1 [L] +# RewriteRule ^/ruby/(.*) https://ruby.libvirt.org/$1 [L] +# RewriteRule ^/php/(.*) https://php.libvirt.org/$1 [L] +# RewriteRule ^/java.html https://java.libvirt.org [L] +# RewriteRule ^/docs/libvirt-appdev-guide-python/en-US/html/(.*) https://libvirt.gitlab.io/libvirt-appdev-guide-python/$1 [L] +# RewriteRule ^/git https://gitlab.com/libvirt/ [L] +# +# Redirect replacing 'gitweb'. The 'gitweb' interface was originally replaced +# by the following redirect condition: +# +# RewriteCond %{QUERY_STRING} p=([-a-zA-Z0-9]+).git +# RewriteRule ^/git/$ https://gitlab.com/libvirt/%1 [L] +# +# That unfortunately can't be represented in gitlab redirects as it doesn't +# support redirects based on query strings. Given that the above redirect broke +# most gitweb links anyways, due to handling only the 'p=' argument, git gitlab +# redirect will break the rest of them. +# +# The following rule was dropped as the page never existed: +# +# RewriteRule ^/libvirt-console-proxy$ /libvirt-console-proxy.html [L]