RewriteEngine On

# This is a 301 (permanent) redirect from HTTP to HTTPS.

# The next rule applies conditionally:
# * the host is "beam.apache.org",
# * the host comparison is case insensitive (NC),
# * HTTPS is not used.
RewriteCond %{HTTP_HOST} ^beam\.apache\.org [NC]
RewriteCond %{HTTPS} !on

# Rewrite the URL as follows:
# * Redirect (R) permanently (301) to https://beam.apache.org/,
# * Stop processing more rules (L).
RewriteRule ^(.*)$ https://beam.apache.org/$1 [L,R=301]

# Javadocs / pydocs are available only on the published website, published from
# https://github.com/apache/beam-site/tree/release-docs
# They were previously hosted within this repository, and published at the URL
# path /documentation/sdks/(javadoc|pydoc)/..
# The following redirect maintains the previously supported URLs.
RedirectMatch permanent "/documentation/sdks/(javadoc|pydoc)(.*)" "https://beam.apache.org/releases/$1$2"
# Keep this updated to point to the current release.
RedirectMatch "/releases/([^/]+)/current(.*)" "https://beam.apache.org/releases/$1/2.12.0$2"
