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"

RedirectMatch "/contribute/design-documents" "https://cwiki.apache.org/confluence/display/BEAM/Design+Documents"

RedirectMatch "/contribute/release-guide" "https://github.com/apache/beam/blob/master/contributor-docs/release-guide.md"

RedirectMatch "/contribute/committer-guide" "https://github.com/apache/beam/blob/master/contributor-docs/committer-guide.md"

Header set Content-Security-Policy "frame-src 'self' https://play.beam.apache.org/ https://www.youtube.com/ https://drive.google.com/ ;"
