[PATCH v2 2/3] docs: Add redirects configuration for gitlab pages

Peter Krempa posted 3 patches 9 months ago
[PATCH v2 2/3] docs: Add redirects configuration for gitlab pages
Posted by Peter Krempa 9 months ago
Adapt the configuration of redirects from the server hosting libvirt.org

The redirect to the 'libvirt-console-proxy' Golang module is not adapted
as it doesn't exist on the current server.

NOTES:
 - The redirects are currently configured for hosting via the
   'gitlab.io/libvirt' URI. For hosting via custom domain it will need
   to be rewritten to drop the '/libvirt' prefixes.

 - gitlab pages doesn't currently support redirects to outside content,
   thus most of the redirects don't actually work:

     https://gitlab.com/gitlab-org/gitlab-pages/-/issues/601

 - The redirects file is only installed in the webpage job but is not
   actually distributed.

 - The validity of the redirects can be checked by visiting:

     https://libvirt.gitlab.io/_redirects

   Having them installed allows us to validate them before we'll be
   switching to use gitlab pages completely.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
 .gitlab-ci.yml          |  1 +
 .gitlab_pages_redirects | 54 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 55 insertions(+)
 create mode 100644 .gitlab_pages_redirects

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]
-- 
2.43.0
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org
Re: [PATCH v2 2/3] docs: Add redirects configuration for gitlab pages
Posted by Daniel P. Berrangé 9 months ago
On Fri, Jan 19, 2024 at 03:33:43PM +0100, Peter Krempa wrote:
> Adapt the configuration of redirects from the server hosting libvirt.org
> 
> The redirect to the 'libvirt-console-proxy' Golang module is not adapted
> as it doesn't exist on the current server.
> 
> NOTES:
>  - The redirects are currently configured for hosting via the
>    'gitlab.io/libvirt' URI. For hosting via custom domain it will need
>    to be rewritten to drop the '/libvirt' prefixes.
> 
>  - gitlab pages doesn't currently support redirects to outside content,
>    thus most of the redirects don't actually work:
> 
>      https://gitlab.com/gitlab-org/gitlab-pages/-/issues/601
> 
>  - The redirects file is only installed in the webpage job but is not
>    actually distributed.
> 
>  - The validity of the redirects can be checked by visiting:
> 
>      https://libvirt.gitlab.io/_redirects
> 
>    Having them installed allows us to validate them before we'll be
>    switching to use gitlab pages completely.
> 
> Signed-off-by: Peter Krempa <pkrempa@redhat.com>
> ---
>  .gitlab-ci.yml          |  1 +
>  .gitlab_pages_redirects | 54 +++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 55 insertions(+)
>  create mode 100644 .gitlab_pages_redirects

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org