zuul-website/www/.htaccess
Ian Wienand ca3c180838
Add zuul-jobs latest/ redirects
zuul-jobs is published to docs/zuul-jobs/latest; because of the way we
do an additive copy we are currently serving old documentation when
anyone follows the links.

This adds redirects for this case.  The list of files is what is
currently in AFS.

I haven't updated the links in various docs to append the latest/
... I can't imagine we have branches/tags for this repo, so it does
seem like a canonical URL, but I think let's just let the 301 redirect
do that just for a layer of abstraction.

Change-Id: I66c155ee7aaded0485a1059ab9a6f540612610a6
2023-05-12 09:39:35 +10:00

246 lines
20 KiB
ApacheConf

# Temporary redirect from "/start" convenience URL to the Quick Start Tutorial
redirectmatch 302 ^/start(/)?$ /get-started.html
# Permanent redirects for documents which have moved in the past
#################################################################
## Move from docs/nodepool to docs/nodepool/latest
redirectmatch 301 ^/docs/nodepool(/)?$ /docs/nodepool/latest/
### HTML Files
redirectmatch 301 ^/docs/nodepool/aws.html$ /docs/nodepool/latest/aws.html
redirectmatch 301 ^/docs/nodepool/azure.html$ /docs/nodepool/latest/azure.html
redirectmatch 301 ^/docs/nodepool/configuration.html$ /docs/nodepool/latest/configuration.html
redirectmatch 301 ^/docs/nodepool/devguide.html$ /docs/nodepool/latest/devguide.html
redirectmatch 301 ^/docs/nodepool/gce.html$ /docs/nodepool/latest/gce.html
redirectmatch 301 ^/docs/nodepool/genindex.html$ /docs/nodepool/latest/genindex.html
redirectmatch 301 ^/docs/nodepool/http-routingtable.html$ /docs/nodepool/latest/http-routingtable.html
redirectmatch 301 ^/docs/nodepool/index.html$ /docs/nodepool/latest/index.html
redirectmatch 301 ^/docs/nodepool/installation.html$ /docs/nodepool/latest/installation.html
redirectmatch 301 ^/docs/nodepool/kubernetes.html$ /docs/nodepool/latest/kubernetes.html
redirectmatch 301 ^/docs/nodepool/metastatic.html$ /docs/nodepool/latest/metastatic.html
redirectmatch 301 ^/docs/nodepool/objects.inv$ /docs/nodepool/latest/objects.inv
redirectmatch 301 ^/docs/nodepool/openshift-pods.html$ /docs/nodepool/latest/openshift-pods.html
redirectmatch 301 ^/docs/nodepool/openshift.html$ /docs/nodepool/latest/openshift.html
redirectmatch 301 ^/docs/nodepool/openstack.html$ /docs/nodepool/latest/openstack.html
redirectmatch 301 ^/docs/nodepool/operation.html$ /docs/nodepool/latest/operation.html
redirectmatch 301 ^/docs/nodepool/releasenotes.html$ /docs/nodepool/latest/releasenotes.html
redirectmatch 301 ^/docs/nodepool/search.html$ /docs/nodepool/latest/search.html
redirectmatch 301 ^/docs/nodepool/static.html$ /docs/nodepool/latest/static.html
redirectmatch 301 ^/docs/nodepool/ibmvpc.html$ /docs/nodepool/latest/ibmvpc.html
#################################################################
## Move from docs/zuul-jobs to docs/zuul-jobs/latest
redirectmatch 301 ^/docs/zuul-jobs(/)?$ /docs/zuul-jobs/latest/
### HTML Files
redirectmatch 301 ^/docs/zuul-jobs/genindex.html$ /docs/zuul-jobs/latest/genindex.html
redirectmatch 301 ^/docs/zuul-jobs/roles.html$ /docs/zuul-jobs/latest/roles.html
redirectmatch 301 ^/docs/zuul-jobs/rust-roles.html$ /docs/zuul-jobs/latest/rust-roles.html
redirectmatch 301 ^/docs/zuul-jobs/search.html$ /docs/zuul-jobs/latest/search.html
redirectmatch 301 ^/docs/zuul-jobs/system-jobs.html$ /docs/zuul-jobs/latest/system-jobs.html
redirectmatch 301 ^/docs/zuul-jobs/system-roles.html$ /docs/zuul-jobs/latest/system-roles.html
redirectmatch 301 ^/docs/zuul-jobs/translation-roles.html$ /docs/zuul-jobs/latest/translation-roles.html
redirectmatch 301 ^/docs/zuul-jobs/helm-jobs.html$ /docs/zuul-jobs/latest/helm-jobs.html
redirectmatch 301 ^/docs/zuul-jobs/helm-roles.html$ /docs/zuul-jobs/latest/helm-roles.html
redirectmatch 301 ^/docs/zuul-jobs/index.html$ /docs/zuul-jobs/latest/index.html
redirectmatch 301 ^/docs/zuul-jobs/install.html$ /docs/zuul-jobs/latest/install.html
redirectmatch 301 ^/docs/zuul-jobs/java-roles.html$ /docs/zuul-jobs/latest/java-roles.html
redirectmatch 301 ^/docs/zuul-jobs/jobs.html$ /docs/zuul-jobs/latest/jobs.html
redirectmatch 301 ^/docs/zuul-jobs/js-jobs.html$ /docs/zuul-jobs/latest/js-jobs.html
redirectmatch 301 ^/docs/zuul-jobs/js-roles.html$ /docs/zuul-jobs/latest/js-roles.html
redirectmatch 301 ^/docs/zuul-jobs/kubernetes-roles.html$ /docs/zuul-jobs/latest/kubernetes-roles.html
redirectmatch 301 ^/docs/zuul-jobs/launchpad-roles.html$ /docs/zuul-jobs/latest/launchpad-roles.html
redirectmatch 301 ^/docs/zuul-jobs/log-roles.html$ /docs/zuul-jobs/latest/log-roles.html
redirectmatch 301 ^/docs/zuul-jobs/mirror.html$ /docs/zuul-jobs/latest/mirror.html
redirectmatch 301 ^/docs/zuul-jobs/nim-jobs.html$ /docs/zuul-jobs/latest/nim-jobs.html
redirectmatch 301 ^/docs/zuul-jobs/nim-roles.html$ /docs/zuul-jobs/latest/nim-roles.html
redirectmatch 301 ^/docs/zuul-jobs/policy.html$ /docs/zuul-jobs/latest/policy.html
redirectmatch 301 ^/docs/zuul-jobs/puppet-roles.html$ /docs/zuul-jobs/latest/puppet-roles.html
redirectmatch 301 ^/docs/zuul-jobs/python-jobs.html$ /docs/zuul-jobs/latest/python-jobs.html
redirectmatch 301 ^/docs/zuul-jobs/python-roles.html$ /docs/zuul-jobs/latest/python-roles.html
redirectmatch 301 ^/docs/zuul-jobs/docker-image.html$ /docs/zuul-jobs/latest/docker-image.html
redirectmatch 301 ^/docs/zuul-jobs/docker-jobs.html$ /docs/zuul-jobs/latest/docker-jobs.html
redirectmatch 301 ^/docs/zuul-jobs/galaxy-roles.html$ /docs/zuul-jobs/latest/galaxy-roles.html
redirectmatch 301 ^/docs/zuul-jobs/general-jobs.html$ /docs/zuul-jobs/latest/general-jobs.html
redirectmatch 301 ^/docs/zuul-jobs/general-roles.html$ /docs/zuul-jobs/latest/general-roles.html
redirectmatch 301 ^/docs/zuul-jobs/go-jobs.html$ /docs/zuul-jobs/latest/go-jobs.html
redirectmatch 301 ^/docs/zuul-jobs/go-roles.html$ /docs/zuul-jobs/latest/go-roles.html
redirectmatch 301 ^/docs/zuul-jobs/hashicorp-jobs.html$ /docs/zuul-jobs/latest/hashicorp-jobs.html
redirectmatch 301 ^/docs/zuul-jobs/hashicorp-roles.html$ /docs/zuul-jobs/latest/hashicorp-roles.html
redirectmatch 301 ^/docs/zuul-jobs/haskell-jobs.html$ /docs/zuul-jobs/latest/haskell-jobs.html
redirectmatch 301 ^/docs/zuul-jobs/haskell-roles.html$ /docs/zuul-jobs/latest/haskell-roles.html
redirectmatch 301 ^/docs/zuul-jobs/afs-roles.html$ /docs/zuul-jobs/latest/afs-roles.html
redirectmatch 301 ^/docs/zuul-jobs/build-roles.html$ /docs/zuul-jobs/latest/build-roles.html
redirectmatch 301 ^/docs/zuul-jobs/cloud-roles.html$ /docs/zuul-jobs/latest/cloud-roles.html
redirectmatch 301 ^/docs/zuul-jobs/container-roles.html$ /docs/zuul-jobs/latest/container-roles.html
redirectmatch 301 ^/docs/zuul-jobs/deprecated-jobs.html$ /docs/zuul-jobs/latest/deprecated-jobs.html
redirectmatch 301 ^/docs/zuul-jobs/deprecated-roles.html$ /docs/zuul-jobs/latest/deprecated-roles.html
#################################################################
## Move from docs/zuul to docs/zuul/latest
redirectmatch 301 ^/docs/zuul(/)?$ /docs/zuul/latest/
### Directories
redirectmatch 301 ^/docs/zuul/config(/)?$ /docs/zuul/latest/config/
redirectmatch 301 ^/docs/zuul/developer(/)?$ /docs/zuul/latest/developer/
redirectmatch 301 ^/docs/zuul/developer/specs(/)?$ /docs/zuul/latest/developer/specs/
redirectmatch 301 ^/docs/zuul/drivers(/)?$ /docs/zuul/latest/drivers/
redirectmatch 301 ^/docs/zuul/howtos(/)?$ /docs/zuul/latest/howtos/
redirectmatch 301 ^/docs/zuul/tutorials(/)?$ /docs/zuul/latest/tutorials/
### HTML Files
redirectmatch 301 ^/docs/zuul/config/job.html$ /docs/zuul/latest/config/job.html
redirectmatch 301 ^/docs/zuul/config/nodeset.html$ /docs/zuul/latest/config/nodeset.html
redirectmatch 301 ^/docs/zuul/config/pipeline.html$ /docs/zuul/latest/config/pipeline.html
redirectmatch 301 ^/docs/zuul/config/pragma.html$ /docs/zuul/latest/config/pragma.html
redirectmatch 301 ^/docs/zuul/config/project.html$ /docs/zuul/latest/config/project.html
redirectmatch 301 ^/docs/zuul/config/queue.html$ /docs/zuul/latest/config/queue.html
redirectmatch 301 ^/docs/zuul/config/secret.html$ /docs/zuul/latest/config/secret.html
redirectmatch 301 ^/docs/zuul/config/semaphore.html$ /docs/zuul/latest/config/semaphore.html
redirectmatch 301 ^/docs/zuul/developer/specs/circular-dependencies.html$ /docs/zuul/latest/developer/specs/circular-dependencies.html
redirectmatch 301 ^/docs/zuul/developer/specs/community-matrix.html$ /docs/zuul/latest/developer/specs/community-matrix.html
redirectmatch 301 ^/docs/zuul/developer/specs/enhanced-regional-executors.html$ /docs/zuul/latest/developer/specs/enhanced-regional-executors.html
redirectmatch 301 ^/docs/zuul/developer/specs/index.html$ /docs/zuul/latest/developer/specs/index.html
redirectmatch 301 ^/docs/zuul/developer/specs/kubernetes-operator.html$ /docs/zuul/latest/developer/specs/kubernetes-operator.html
redirectmatch 301 ^/docs/zuul/developer/specs/tenant-resource-quota.html$ /docs/zuul/latest/developer/specs/tenant-resource-quota.html
redirectmatch 301 ^/docs/zuul/developer/specs/tenant-scoped-admin-web-API.html$ /docs/zuul/latest/developer/specs/tenant-scoped-admin-web-API.html
redirectmatch 301 ^/docs/zuul/developer/specs/zuul-runner.html$ /docs/zuul/latest/developer/specs/zuul-runner.html
redirectmatch 301 ^/docs/zuul/developer/ansible.html$ /docs/zuul/latest/developer/ansible.html
redirectmatch 301 ^/docs/zuul/developer/datamodel.html$ /docs/zuul/latest/developer/datamodel.html
redirectmatch 301 ^/docs/zuul/developer/docs.html$ /docs/zuul/latest/developer/docs.html
redirectmatch 301 ^/docs/zuul/developer/drivers.html$ /docs/zuul/latest/developer/drivers.html
redirectmatch 301 ^/docs/zuul/developer/index.html$ /docs/zuul/latest/developer/index.html
redirectmatch 301 ^/docs/zuul/developer/javascript.html$ /docs/zuul/latest/developer/javascript.html
redirectmatch 301 ^/docs/zuul/developer/releasenotes.html$ /docs/zuul/latest/developer/releasenotes.html
redirectmatch 301 ^/docs/zuul/developer/testing.html$ /docs/zuul/latest/developer/testing.html
redirectmatch 301 ^/docs/zuul/developer/triggers.html$ /docs/zuul/latest/developer/triggers.html
redirectmatch 301 ^/docs/zuul/developer/zookeeper.html$ /docs/zuul/latest/developer/zookeeper.html
redirectmatch 301 ^/docs/zuul/drivers/elasticsearch.html$ /docs/zuul/latest/drivers/elasticsearch.html
redirectmatch 301 ^/docs/zuul/drivers/gerrit.html$ /docs/zuul/latest/drivers/gerrit.html
redirectmatch 301 ^/docs/zuul/drivers/git.html$ /docs/zuul/latest/drivers/git.html
redirectmatch 301 ^/docs/zuul/drivers/github.html$ /docs/zuul/latest/drivers/github.html
redirectmatch 301 ^/docs/zuul/drivers/gitlab.html$ /docs/zuul/latest/drivers/gitlab.html
redirectmatch 301 ^/docs/zuul/drivers/index.html$ /docs/zuul/latest/drivers/index.html
redirectmatch 301 ^/docs/zuul/drivers/mqtt.html$ /docs/zuul/latest/drivers/mqtt.html
redirectmatch 301 ^/docs/zuul/drivers/pagure.html$ /docs/zuul/latest/drivers/pagure.html
redirectmatch 301 ^/docs/zuul/drivers/smtp.html$ /docs/zuul/latest/drivers/smtp.html
redirectmatch 301 ^/docs/zuul/drivers/sql.html$ /docs/zuul/latest/drivers/sql.html
redirectmatch 301 ^/docs/zuul/drivers/timer.html$ /docs/zuul/latest/drivers/timer.html
redirectmatch 301 ^/docs/zuul/drivers/zuul.html$ /docs/zuul/latest/drivers/zuul.html
redirectmatch 301 ^/docs/zuul/howtos/badges.html$ /docs/zuul/latest/howtos/badges.html
redirectmatch 301 ^/docs/zuul/howtos/centos7_setup.html$ /docs/zuul/latest/howtos/centos7_setup.html
redirectmatch 301 ^/docs/zuul/howtos/fedora27_setup.html$ /docs/zuul/latest/howtos/fedora27_setup.html
redirectmatch 301 ^/docs/zuul/howtos/gerrit_setup.html$ /docs/zuul/latest/howtos/gerrit_setup.html
redirectmatch 301 ^/docs/zuul/howtos/github_setup.html$ /docs/zuul/latest/howtos/github_setup.html
redirectmatch 301 ^/docs/zuul/howtos/index.html$ /docs/zuul/latest/howtos/index.html
redirectmatch 301 ^/docs/zuul/howtos/matrix-encryption.html$ /docs/zuul/latest/howtos/matrix-encryption.html
redirectmatch 301 ^/docs/zuul/howtos/matrix-id.html$ /docs/zuul/latest/howtos/matrix-id.html
redirectmatch 301 ^/docs/zuul/howtos/matrix-irc.html$ /docs/zuul/latest/howtos/matrix-irc.html
redirectmatch 301 ^/docs/zuul/howtos/matrix.html$ /docs/zuul/latest/howtos/matrix.html
redirectmatch 301 ^/docs/zuul/howtos/nodepool_install.html$ /docs/zuul/latest/howtos/nodepool_install.html
redirectmatch 301 ^/docs/zuul/howtos/nodepool_openstack.html$ /docs/zuul/latest/howtos/nodepool_openstack.html
redirectmatch 301 ^/docs/zuul/howtos/nodepool_static.html$ /docs/zuul/latest/howtos/nodepool_static.html
redirectmatch 301 ^/docs/zuul/howtos/openid-with-google.html$ /docs/zuul/latest/howtos/openid-with-google.html
redirectmatch 301 ^/docs/zuul/howtos/openid-with-keycloak.html$ /docs/zuul/latest/howtos/openid-with-keycloak.html
redirectmatch 301 ^/docs/zuul/howtos/opensuse_leap15_setup.html$ /docs/zuul/latest/howtos/opensuse_leap15_setup.html
redirectmatch 301 ^/docs/zuul/howtos/pti.html$ /docs/zuul/latest/howtos/pti.html
redirectmatch 301 ^/docs/zuul/howtos/ubuntu_setup.html$ /docs/zuul/latest/howtos/ubuntu_setup.html
redirectmatch 301 ^/docs/zuul/howtos/zookeeper.html$ /docs/zuul/latest/howtos/zookeeper.html
redirectmatch 301 ^/docs/zuul/howtos/zuul_install.html$ /docs/zuul/latest/howtos/zuul_install.html
redirectmatch 301 ^/docs/zuul/tutorials/keycloak.html$ /docs/zuul/latest/tutorials/keycloak.html
redirectmatch 301 ^/docs/zuul/tutorials/quick-start.html$ /docs/zuul/latest/tutorials/quick-start.html
redirectmatch 301 ^/docs/zuul/about.html$ /docs/zuul/latest/about.html
redirectmatch 301 ^/docs/zuul/admin.html$ /docs/zuul/latest/admin.html
redirectmatch 301 ^/docs/zuul/authentication.html$ /docs/zuul/latest/authentication.html
redirectmatch 301 ^/docs/zuul/client.html$ /docs/zuul/latest/client.html
redirectmatch 301 ^/docs/zuul/components.html$ /docs/zuul/latest/components.html
redirectmatch 301 ^/docs/zuul/concepts.html$ /docs/zuul/latest/concepts.html
redirectmatch 301 ^/docs/zuul/configuration.html$ /docs/zuul/latest/configuration.html
redirectmatch 301 ^/docs/zuul/gating.html$ /docs/zuul/latest/gating.html
redirectmatch 301 ^/docs/zuul/genindex.html$ /docs/zuul/latest/genindex.html
redirectmatch 301 ^/docs/zuul/glossary.html$ /docs/zuul/latest/glossary.html
redirectmatch 301 ^/docs/zuul/governance.html$ /docs/zuul/latest/governance.html
redirectmatch 301 ^/docs/zuul/http-routingtable.html$ /docs/zuul/latest/http-routingtable.html
redirectmatch 301 ^/docs/zuul/index.html$ /docs/zuul/latest/index.html
redirectmatch 301 ^/docs/zuul/installation.html$ /docs/zuul/latest/installation.html
redirectmatch 301 ^/docs/zuul/job-content.html$ /docs/zuul/latest/job-content.html
redirectmatch 301 ^/docs/zuul/monitoring.html$ /docs/zuul/latest/monitoring.html
redirectmatch 301 ^/docs/zuul/operation.html$ /docs/zuul/latest/operation.html
redirectmatch 301 ^/docs/zuul/project-config.html$ /docs/zuul/latest/project-config.html
redirectmatch 301 ^/docs/zuul/py-modindex.html$ /docs/zuul/latest/py-modindex.html
redirectmatch 301 ^/docs/zuul/releasenotes.html$ /docs/zuul/latest/releasenotes.html
redirectmatch 301 ^/docs/zuul/rest-api.html$ /docs/zuul/latest/rest-api.html
redirectmatch 301 ^/docs/zuul/search.html$ /docs/zuul/latest/search.html
redirectmatch 301 ^/docs/zuul/tenants.html$ /docs/zuul/latest/tenants.html
redirectmatch 301 ^/docs/zuul/troubleshooting.html$ /docs/zuul/latest/troubleshooting.html
redirectmatch 301 ^/docs/zuul/vulnerabilities.html$ /docs/zuul/latest/vulnerabilities.html
#################################################################
## Reorg from I5ef88536acf1a1e58a07827e06b07d06588ecaf1
### These directories moved
redirectmatch 301 ^/docs/zuul/reference/developer(/)?$ /docs/zuul/latest/developer/
redirectmatch 301 ^/docs/zuul/reference/developer/specs(/)?$ /docs/zuul/latest/developer/specs/
redirectmatch 301 ^/docs/zuul/reference/drivers(/)?$ /docs/zuul/latest/drivers/
### These directories don't exist any more
redirectmatch 301 ^/docs/zuul/reference/discussion(/)?$ /docs/zuul/latest/
redirectmatch 301 ^/docs/zuul/reference/reference(/)?$ /docs/zuul/latest/
### HTML File moves
redirectmatch 301 ^/docs/zuul/discussion/tenant-scoped-rest-api.html$ /docs/zuul/latest/authentication.html
redirectmatch 301 ^/docs/zuul/reference/client.html$ /docs/zuul/latest/client.html
redirectmatch 301 ^/docs/zuul/discussion/concepts.html$ /docs/zuul/latest/concepts.html
redirectmatch 301 ^/docs/zuul/reference/job_def.html$ /docs/zuul/latest/config/job.html
redirectmatch 301 ^/docs/zuul/reference/nodeset_def.html$ /docs/zuul/latest/config/nodeset.html
redirectmatch 301 ^/docs/zuul/reference/pipeline_def.html$ /docs/zuul/latest/config/pipeline.html
redirectmatch 301 ^/docs/zuul/reference/pragma_def.html$ /docs/zuul/latest/config/pragma.html
redirectmatch 301 ^/docs/zuul/reference/project_def.html$ /docs/zuul/latest/config/project.html
redirectmatch 301 ^/docs/zuul/reference/queue_def.html$ /docs/zuul/latest/config/queue.html
redirectmatch 301 ^/docs/zuul/reference/secret_def.html$ /docs/zuul/latest/config/secret.html
redirectmatch 301 ^/docs/zuul/reference/semaphore_def.html$ /docs/zuul/latest/config/semaphore.html
redirectmatch 301 ^/docs/zuul/discussion/components.html$ /docs/zuul/latest/configuration.html
redirectmatch 301 ^/docs/zuul/reference/developer/ansible.html$ /docs/zuul/latest/developer/ansible.html
redirectmatch 301 ^/docs/zuul/reference/developer/datamodel.html$ /docs/zuul/latest/developer/datamodel.html
redirectmatch 301 ^/docs/zuul/reference/developer/docs.html$ /docs/zuul/latest/developer/docs.html
redirectmatch 301 ^/docs/zuul/reference/developer/drivers.html$ /docs/zuul/latest/developer/drivers.html
redirectmatch 301 ^/docs/zuul/reference/developer/index.html$ /docs/zuul/latest/developer/index.html
redirectmatch 301 ^/docs/zuul/reference/developer/javascript.html$ /docs/zuul/latest/developer/javascript.html
redirectmatch 301 ^/docs/zuul/reference/developer/releasenotes.html$ /docs/zuul/latest/developer/releasenotes.html
redirectmatch 301 ^/docs/zuul/reference/developer/specs/circular-dependencies.html$ /docs/zuul/latest/developer/specs/circular-dependencies.html
redirectmatch 301 ^/docs/zuul/reference/developer/specs/community-matrix.html$ /docs/zuul/latest/developer/specs/community-matrix.html
redirectmatch 301 ^/docs/zuul/reference/developer/specs/enhanced-regional-executors.html$ /docs/zuul/latest/developer/specs/enhanced-regional-executors.html
redirectmatch 301 ^/docs/zuul/reference/developer/specs/index.html$ /docs/zuul/latest/developer/specs/index.html
redirectmatch 301 ^/docs/zuul/reference/developer/specs/kubernetes-operator.html$ /docs/zuul/latest/developer/specs/kubernetes-operator.html
redirectmatch 301 ^/docs/zuul/reference/developer/specs/tenant-resource-quota.html$ /docs/zuul/latest/developer/specs/tenant-resource-quota.html
redirectmatch 301 ^/docs/zuul/reference/developer/specs/tenant-scoped-admin-web-API.html$ /docs/zuul/latest/developer/specs/tenant-scoped-admin-web-API.html
redirectmatch 301 ^/docs/zuul/reference/developer/specs/zuul-runner.html$ /docs/zuul/latest/developer/specs/zuul-runner.html
redirectmatch 301 ^/docs/zuul/reference/developer/testing.html$ /docs/zuul/latest/developer/testing.html
redirectmatch 301 ^/docs/zuul/reference/developer/triggers.html$ /docs/zuul/latest/developer/triggers.html
redirectmatch 301 ^/docs/zuul/reference/developer/zookeeper.html$ /docs/zuul/latest/developer/zookeeper.html
redirectmatch 301 ^/docs/zuul/reference/drivers/elasticsearch.html$ /docs/zuul/latest/drivers/elasticsearch.html
redirectmatch 301 ^/docs/zuul/reference/drivers/gerrit.html$ /docs/zuul/latest/drivers/gerrit.html
redirectmatch 301 ^/docs/zuul/reference/drivers/git.html$ /docs/zuul/latest/drivers/git.html
redirectmatch 301 ^/docs/zuul/reference/drivers/github.html$ /docs/zuul/latest/drivers/github.html
redirectmatch 301 ^/docs/zuul/reference/drivers/gitlab.html$ /docs/zuul/latest/drivers/gitlab.html
redirectmatch 301 ^/docs/zuul/reference/drivers/index.html$ /docs/zuul/latest/drivers/index.html
redirectmatch 301 ^/docs/zuul/reference/drivers/mqtt.html$ /docs/zuul/latest/drivers/mqtt.html
redirectmatch 301 ^/docs/zuul/reference/drivers/pagure.html$ /docs/zuul/latest/drivers/pagure.html
redirectmatch 301 ^/docs/zuul/reference/drivers/smtp.html$ /docs/zuul/latest/drivers/smtp.html
redirectmatch 301 ^/docs/zuul/reference/drivers/sql.html$ /docs/zuul/latest/drivers/sql.html
redirectmatch 301 ^/docs/zuul/reference/drivers/timer.html$ /docs/zuul/latest/drivers/timer.html
redirectmatch 301 ^/docs/zuul/reference/drivers/zuul.html$ /docs/zuul/latest/drivers/zuul.html
redirectmatch 301 ^/docs/zuul/reference/glossary.html$ /docs/zuul/latest/glossary.html
redirectmatch 301 ^/docs/zuul/reference/governance.html$ /docs/zuul/latest/governance.html
redirectmatch 301 ^/docs/zuul/discussion/gating.html$ /docs/zuul/latest/gating.html
redirectmatch 301 ^/docs/zuul/howtos/installation.html$ /docs/zuul/latest/installation.html
redirectmatch 301 ^/docs/zuul/reference/jobs/jobs.html$ /docs/zuul/latest/job-content.html
redirectmatch 301 ^/docs/zuul/reference/monitoring.html$ /docs/zuul/latest/monitoring.html
redirectmatch 301 ^/docs/zuul/reference/config.html$ /docs/zuul/latest/project-config.html
redirectmatch 301 ^/docs/zuul/reference/releasenotes.html$ /docs/zuul/latest/releasenotes.html
redirectmatch 301 ^/docs/zuul/reference/web.html$ /docs/zuul/latest/rest-api.html
redirectmatch 301 ^/docs/zuul/reference/tenants.html$ /docs/zuul/latest/tenants.html
redirectmatch 301 ^/docs/zuul/howtos/troubleshooting.html$ /docs/zuul/latest/troubleshooting.html
redirectmatch 301 ^/docs/zuul/reference/vulnerabilities.html$ /docs/zuul/latest/vulnerabilities.html