RewriteEngine On

# Redirects for old support portal URLs

RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?apt/?$ /$1little-t-tor/getting-started/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?apt/apt-over-tor/?$ /$1little-t-tor/getting-started/apt-over-tor/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?apt/tor-deb-repo/?$ /$1little-t-tor/getting-started/installing/ [R=302,L]

RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?about/?$ /$1about-tor/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?about/attacks-on-onion-routing/?$ /$1about-tor/security/attacks-on-onion-routing/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?about/backdoor/?$ /$1about-tor/security/no-backdoor/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?about/can-i-use-tor-with/?$ /$1about-tor/using-and-sharing/torifying/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?about/change-paths/?$ /$1about-tor/how-tor-works/path-selection/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?about/distribute-tor/?$ /$1about-tor/using-and-sharing/distributing/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?about/entry-guards/?$ /$1about-tor/security/no-data-scrubbing/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?about/how-is-tor-different-from-other-proxies/?$ /$1about-tor/introduction/tor-vs-other-proxies/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?about/key-management/?$ /$1about-tor/how-tor-works/key-management/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?about/no-data-scrubbing/?$ /$1about-tor/security/no-data-scrubbing/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?about/protections/?$ /$1about-tor/introduction/protections/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?about/what-is-tor/?$ /$1about-tor/introduction/what-is-tor/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?about/why-is-it-called-tor/?$ /$1about-tor/introduction/why-is-it-called-tor/ [R=302,L]

# no redirect needed for /abuse page, path exists
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?abuse/does-tor-get-much-abuse/?$ /$1relays/legal-and-abuse/exit-relay-abuse/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?abuse/exit-relay-expectations/?$ /$1relays/legal-and-abuse/exit-relay-expectations/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?abuse/i-want-to-ban-tor/?$ /$1abuse/ban-tor/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?abuse/legal-questions-about-tor-abuse/?$ /$1relays/legal-and-abuse/legal-support/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?abuse/nodes-banned-from-mail-server/?$ /$1abuse/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?abuse/tor-ban-irc/?$ /$1abuse/irc/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?abuse/tor-ip-for-legal-case/?$ /$1relays/legal-and-abuse/legal-support/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?abuse/what-about-ddos/?$ /$1relays/legal-and-abuse/ddos/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?abuse/what-about-spammers/?$ /$1relays/legal-and-abuse/spammers-and-tor/ [R=302,L]

RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?alternate-designs/?$ /$1about-tor/alt-design/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?alternate-designs/block-websites/?$ /$1about-tor/alt-design/exit-blocking-sites/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?alternate-designs/let-the-network-pick-the-path/?$ /$1about-tor/alt-design/let-the-network-pick-the-path/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?alternate-designs/make-every-user-a-relay/?$ /$1about-tor/alt-design/make-every-user-a-relay/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?alternate-designs/transport-all-ip-packets/?$ /$1about-tor/alt-design/transport-all-ip-packets/ [R=302,L]

RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?censorship/?$ /$1tor-browser/circumvention/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?censorship/censorship-2/?$ /$1tor-browser/general/website-blocking-tor-exits/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?censorship/censorship-4/?$ /$1tor-browser/circumvention/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?censorship/censorship-5/?$ /$1tor-browser/encountering-issues/reading-tor-logs/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?censorship/censorship-7/?$ /$1relays/getting-started/what-is-a-bridge/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?censorship/connecting-from-china/?$ /$1tor-browser/circumvention/connecting-from-censored-regions/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?censorship/connecting-from-russia/?$ /$1tor-browser/circumvention/connecting-from-censored-regions/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?censorship/gettor-1/?$ /$1tor-browser/getting-started/downloading/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?censorship/gettor-2/?$ /$1tor-browser/getting-started/downloading/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?censorship/how-can-i-use-snowflake/?$ /$1anti-censorship/how-can-i-use-snowflake/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?censorship/how-to-check-if-tor-is-blocked-using-ooni/?$ /$1anti-censorship/how-to-check-if-tor-is-blocked/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?censorship/how-to-help-running-snowflake/?$ /$1anti-censorship/running-snowflake/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?censorship/what-is-snowflake/?$ /$1anti-censorship/what-is-snowflake/ [R=302,L]

RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?connecting/?$ /$1tor-browser/encountering-issues/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?connecting/connecting-2/?$ /$1tor-browser/encountering-issues/reading-tor-logs/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?connecting/connecting-3/?$ /$1tor-browser/encountering-issues/troubleshooting-onion-services/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?connecting/connecting-4/?$ /$1tor-browser/encountering-issues/proxy-errors/ [R=302,L]

RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?faq/?$ /$1 [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?faq/faq-5/?$ /$1tor-browser/general/vpn-with-tor/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?faq/relay-donations/?$ /$1relays/running/supporting-tor-relays/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?faq/staying-anonymous/?$ /$1tor-browser/security/using-tb-safely/ [R=302,L]

# no redirect needed for /get-in-touch page, path exists
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?get-in-touch/irc-help/?$ /$1get-in-touch/chat-with-us/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?get-in-touch/why-i-cant-join-tor-channels/?$ /$1get-in-touch/chat-with-us/ [R=302,L]

# no redirect needed for /little-t-tor page, path exists
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?little-t-tor/install-little-t-tor/?$ /$1little-t-tor/getting-started/installing/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?little-t-tor/tor-pluggable-transports/?$ /$1little-t-tor/circumvention/using-bridges/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?little-t-tor/verify-little-t-tor/?$ /$1little-t-tor/getting-started/verifying/ [R=302,L]

# missing redirect for /misc page
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?misc/?$ /$1 [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?misc/bug-or-feedback/?$ /$1get-in-touch/bug-or-feedback/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?misc/check-socks-dns-leaks/?$ /$1little-t-tor/troubleshooting/check-dns-leaks/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?misc/hide-exits/?$ /$1about-tor/alt-design/hide-list-of-exits/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?misc/misc-2/?$ /$1abuse/prevent-bad-people/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?misc/misc-3/?$ /$1about-tor/introduction/who-funds-tor/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?misc/misc-4/?$ /$1about-tor/using-and-sharing/torrent/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?misc/misc-5/?$ /$1abuse/ransomware/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?misc/misc-6/?$ /$1about-tor/using-and-sharing/no-logs/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?misc/misc-7/?$ /$1about-tor/using-and-sharing/hosting/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?misc/misc-11/?$ /$1about-tor/using-and-sharing/circuit-length/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?misc/misc-12/?$ /$1about-tor/using-and-sharing/onionshare/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?misc/tormessenger-1/?$ /$1about-tor/using-and-sharing/hosting/ [R=302,L]

RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?mullvad-browser/?$ /$1mullvad-browser/faqs/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?mullvad-browser/(?!faqs)([^/]+)/?$ /$1mullvad-browser/faqs/$2/ [R=302,L]

RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?onionservices/?$ /$1tor-browser/features/onion-services/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?onionservices/client-auth/?$ /$1tor-browser/features/onion-services/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?onionservices/onion-location/?$ /$1tor-browser/features/onion-services/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?onionservices/onionservices-1/?$ /$1about-tor/onion-services/what-is-a-dot-onion/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?onionservices/onionservices-2/?$ /$1onion-services/what-is-a-dot-onion/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?onionservices/onionservices-3/?$ /$1tor-browser/encountering-issues/troubleshooting-onion-services/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?onionservices/onionservices-4/?$ /$1about-tor/onion-services/what-is-a-dot-onion/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?onionservices/onionservices-5/?$ /$1tor-browser/features/onion-services/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?onionservices/v2-deprecation/?$ https://onionservices.torproject.org/technology/timeline/ [R=302,L]

RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?operators/? /$1relays/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/?$ /$1relays/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/bandwidth-shaping/?$ /$1relays/performance/bandwidth-shaping/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/better-anonymity/?$ /$1relays/getting-started/better-anonymity/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/change-bridge-distribution/?$ /$1relays/running/bridge-distribution-method/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/default-exit-ports/?$ /$1relays/running/default-exit-ports/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/exit-policies/?$ /$1relays/legal-and-abuse/exit-relay-abuse/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/hibernation/?$ /$1relays/performance/hibernation/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/ipv6-relay/?$ /$1relays/running/ipv6-relay/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/limit-total-bandwidth/?$ /$1relays/performance/bandwidth-limits/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/multiple-relays/?$ /$1relays/getting-started/my-family/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/my-relay-got-guard-flag-traffic-dropped/?$ /$1relays/running/guard-relay-traffic-drop/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/offline-ed25519/?$ /$1relays/running/relay-offline-keys/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/operators-7/?$ /$1relays/getting-started/run-exit-from-home/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/outgoing-firewall/?$ /$1relays/running/configure-outgoing-filters/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/packaged-tor/?$ /$1little-t-tor/getting-started/installing/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/relay-bridge-overloaded/?$ /$1relays/performance/overloaded/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/relay-flexible/?$ /$1relays/running/relay-stability/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/relay-write-more-bytes/?$ /$1relays/performance/relay-writes-more-bytes/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/upgrade-or-move/?$ /$1relays/running/same-relay-identity/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/what-type-of-relays-are-most-needed/?$ /$1relays/getting-started/what-type-of-relays-are-most-needed/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/why-is-my-relay-slow/?$ /$1relays/performance/relay-is-slow/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/why-isnt-my-relay-being-used-more/?$ /$1relays/performance/low-traffic/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?relay-operators/wrong-ip/?$ /$1relays/running/fixing-relay-ip-address/ [R=302,L]

RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?rpm/?$ /$1little-t-tor/getting-started/installing/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?rpm/tor-rpm-install/?$ /$1little-t-tor/getting-started/installing/ [R=302,L]

RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/?$ /$1tor-browser/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/antivirus-false-positive/?$ /$1tor-browser/encountering-issues/antivirus/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/check-torbrowser-version/?$ /$1tor-browser/encountering-issues/troubleshooting/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/export-and-import-bookmarks/?$ /$1tor-browser/encountering-issues/reading-tor-logs/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/fake-tbb/?$ /$1tor-browser/encountering-issues/reading-tor-logs/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/how-to-verify-signature/?$ /$1tor-browser/getting-started/verifying-tor-browser/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/lyrebird/?$ /$1tor-browser/circumvention/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-1/?$ /$1tor-browser/encountering-issues/known-issues/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-10/?$ /$1tor-browser/encountering-issues/antivirus/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-10/?$ /$1tor-browser/encountering-issues/antivirus/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-11/?$ /$1tor-browser/getting-started/installing/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-13/?$ /$1tor-browser/features/managing-identities/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-14/?$ /$1tor-browser/features/plugins/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-15/?$ /$1tor-browser/getting-started/installing/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-16/?$ /$1tor-browser/features/managing-identities/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-17/?$ /$1tor-browser/security/using-tor-with-other-browsers/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-18/?$ /$1tor-browser/getting-started/installing/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-2/?$ /$1tor-browser/security/guard-relay/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-21/?$ /$1tor-browser/encountering-issues/troubleshooting/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-22/?$ /$1tor-browser/general/tor-browser-speed/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-22/?$ /$1tor-browser/general/tor-browser-speed/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-24/?$ /$1tor-browser/features/default-search-engine/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-29/?$ /$1tor-browser/features/managing-identities/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-30/?$ /$1tor-browser/encountering-issues/website-lockout/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-30/?$ /$1tor-browser/encountering-issues/website-lockout/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-32/?$ /$1tor-browser/encountering-issues/known-issues/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-34/?$ /$1tor-browser/features/plugins/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-34/?$ /$1tor-browser/features/plugins/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-35/?$ /$1tor-browser/encountering-issues/captchas/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-36/?$ /$1tor-browser/encountering-issues/known-issues/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-37/?$ /$1tor-browser/getting-started/languages/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-37/?$ /$1tor-browser/getting-started/languages/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-39/?$ /$1tor-browser/features/managing-identities/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-4/?$ /$1tor-browser/getting-started/about-tor-browser/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-41/?$ /$1tor-browser/features/default-search-engine/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-41/?$ /$1tor-browser/features/default-search-engine/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-42/?$ /$1tor-browser/encountering-issues/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-43/?$ /$1tor-browser/general/google-shows-foreign-languages/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-43/?$ /$1tor-browser/general/google-shows-foreign-languages/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-44/?$ /$1tor-browser/encountering-issues/captchas/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-44/?$ /$1tor-browser/encountering-issues/captchas/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-45/?$ /$1tor-browser/encountering-issues/gmail-account-warning/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-45/?$ /$1tor-browser/encountering-issues/gmail-account-warning/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-47/?$ /$1tor-browser/getting-started/first-launch/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-5/?$ /$1tor-browser/security/using-tor-with-other-browsers/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-9/?$ /$1tor-browser/security/using-tor-with-other-browsers/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-and-incognito-mode/?$ /$1tor-browser/encountering-issues/reading-tor-logs/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-editing-torrc/?$ /$1tor-browser/encountering-issues/editing-torrc/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-install-tor-central-server/?$ /$1little-t-tor/getting-started/tor-client-central-server/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/tbb-run-client-different-computer/?$ /$1little-t-tor/getting-started/tor-client-central-server/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tbb/website-blocking-tor/?$ /$1tor-browser/general/website-blocking-tor-exits/ [R=302,L]

# no redirect needed for /tor-vpn page, path exists
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tor-vpn/app-appearance/?$ /$1tor-vpn/features/app-appearance/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tor-vpn/censorship-circumvention/?$ /$1tor-vpn/circumvention/using-bridges/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tor-vpn/config-apps-tor-vpn/?$ /$1tor-vpn/features/config-apps/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tor-vpn/download-and-install/?$ /$1tor-vpn/getting-started/download-and-install/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tor-vpn/exit-location/?$ /$1tor-vpn/features/exit-location/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tor-vpn/first-launch/?$ /$1tor-vpn/getting-started/first-launch/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tor-vpn/introduction/?$ /$1tor-vpn/getting-started/about-tor-vpn/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tor-vpn/kill-switch/?$ /$1tor-vpn/features/kill-switch/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tor-vpn/support/?$ /$1tor-vpn/encountering-issues/feedback-and-support/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tor-vpn/troubleshoot/?$ /$1tor-vpn/encountering-issues/troubleshooting/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tor-vpn/uninstall/?$ /$1tor-vpn/getting-started/uninstall/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tor-vpn/update/?$ /$1tor-vpn/getting-started/update/ [R=302,L]

RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tormobile/?$ /$1tor-browser/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tormobile/tor-browser-reported-trackers/?$ /$1tor-browser/security/tor-browser-for-android-no-trackers/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tormobile/tormobile-3/?$ /$1tor-browser/getting-started/installing/#ios [NE,R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?tormobile/tormobile-7/?$ /$1tor-browser/getting-started/installing/#android [NE,R=302,L]

# Redirects for old tb-manual.tpo urls
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?about/?$ /$1tor-browser/getting-started/about-tor-browser/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?anti-fingerprinting/?$ /$1tor-browser/features/fingerprinting-protections/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?bridges/?$ /$1tor-browser/circumvention/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?circumvention/?$ /$1tor-browser/circumvention/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?downloading/?$ /$1tor-browser/getting-started/downloading/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?installation/?$ /$1tor-browser/getting-started/installating/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?known-issues/?$ /$1tor-browser/encountering-issues/known-issues/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?make-tor-portable/?$ /$1tor-browser/getting-started/making-tor-browser-portable/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?managing-identities/?$ /$1tor-browser/features/managing-identities/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?mobile-tor/?$ /$1tor-browser/getting-started/installing/#android [NE,R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?onion-services/?$ /$1tor-browser/features/onion-services/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?plugins/?$ /$1tor-browser/features/plugins/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?running-tor-browser/?$ /$1tor-browser/getting-started/first-launch/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?secure-connections/?$ /$1tor-browser/features/secure-connections/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?security-settings/?$ /$1tor-browser/features/security-levels/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?support/?$ /$1get-in-touch/user-support/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?troubleshooting/?$ /$1tor-browser/encountering-issues/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?uninstalling/?$ /$1tor-browser/getting-started/uninstalling/ [R=302,L]
RewriteRule ^([a-z]{2}(?:-[A-Z]{2})?/)?updating/?$ /$1tor-browser/getting-started/updating/ [R=302,L]

# Redirects for languages

# inhibit language negotiation for /en and /en/ urls
RewriteRule ^en(?:-[A-Z]{2})?/?$ /?noredirect=1 [R=302,L]

# Send "noindex" to robots on URLs with noredirect query string
# this should avoid duplicate homepage entries in search engines
RewriteCond %{QUERY_STRING} ^noredirect
RewriteRule .* - [E=noindex:1]
Header set X-Robots-Tag "noindex" env=noindex

# render homepage in language negotiated with browser
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{QUERY_STRING} !^noredirect
RewriteCond %{DOCUMENT_ROOT}/index.html.var -f
RewriteRule ^ /index.html.var [L]

# if page doesn't exist and is prefixed with a language code
# set environment variables to attempt a redirect, see rules below
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteCond "%{REQUEST_URI}" "^/([a-z]{2})(?:-[A-Z]{2})?/(.*)" [OR]
RewriteCond "%{REQUEST_URI}" "^/([a-z]{2})(?:-[A-Z]{2})?$"
RewriteRule ^ - [E=langredir:1,E=langredir_code:%1,E=langredir_subpath:%2]

# redirect if the language code without region variant exists
# eg. redirect /es-AR to /es
RewriteCond %{ENV:langredir} =1
RewriteCond %{DOCUMENT_ROOT}/%{ENV:langredir_code}/%{ENV:langredir_subpath} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/%{ENV:langredir_code}/%{ENV:langredir_subpath} -d
RewriteRule ^ /%{ENV:langredir_code}/%{ENV:langredir_subpath} [R=302,L]

# redirect if the translation requested isn't available
# to the fallback language version of the page
RewriteCond %{ENV:langredir} =1
RewriteCond %{DOCUMENT_ROOT}/%{ENV:langredir_subpath} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/%{ENV:langredir_subpath} -d
RewriteRule ^ /%{ENV:langredir_subpath} [R=302,L]

# Error pages

ErrorDocument 404 /404.html.var
