diff --git a/.github/workflows/docs-redirects.yml b/.github/workflows/docs-redirects.yml new file mode 100644 index 00000000..d8ae59f9 --- /dev/null +++ b/.github/workflows/docs-redirects.yml @@ -0,0 +1,46 @@ +name: Test d.p.o redirects + +on: + push: + paths: + - ".github/workflows/docs-redirects.yml" + - "salt/docs/**" + - "tests/docs-redirects/**" + pull_request: + paths: + - ".github/workflows/docs-redirects.yml" + - "salt/docs/**" + - "tests/docs-redirects/**" + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +env: + FORCE_COLOR: "1" + +jobs: + docs-redirects: + name: Hurl + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Download Hurl ${{ env.HURL_VERSION }} + run: > + curl --no-progress-meter --location --fail + --proto '=https' --tlsv1.2 + --output '/tmp/hurl.deb' + "https://github.com/Orange-OpenSource/hurl/releases/download/${{ env.HURL_VERSION }}/hurl_${{ env.HURL_VERSION }}_amd64.deb" + env: + HURL_VERSION: "5.0.1" + + - name: Install Hurl + run: sudo apt install --yes /tmp/hurl.deb + + - name: Run tests + run: bash tests/docs-redirects/test.sh diff --git a/salt/docs/config/nginx.docs-redirects.conf b/salt/docs/config/nginx.docs-redirects.conf index 11882478..f9acd66f 100644 --- a/salt/docs/config/nginx.docs-redirects.conf +++ b/salt/docs/config/nginx.docs-redirects.conf @@ -1,5 +1,6 @@ # This file contains redirect configuration for docs.python.org. -# It is included by ``nginx.docs-backend.conf``. +# It is included by ``nginx.docs-backend.conf``, +# and tested in ``tests/docs-redirects/``. # Python 3 docs are the default at the root. location = / { diff --git a/tests/docs-redirects/nginx.conf b/tests/docs-redirects/nginx.conf new file mode 100644 index 00000000..3e08c32b --- /dev/null +++ b/tests/docs-redirects/nginx.conf @@ -0,0 +1,4 @@ +server { + listen 10000; + include docs-redirects.conf; +} diff --git a/tests/docs-redirects/specs/PEP-594.hurl b/tests/docs-redirects/specs/PEP-594.hurl new file mode 100644 index 00000000..a75f9fef --- /dev/null +++ b/tests/docs-redirects/specs/PEP-594.hurl @@ -0,0 +1,2774 @@ +# Assert that the modules removed in Python 3.13 (PEP 594) +# are redirected to the root + + +## Test: Redirect library/2to3.html -> '' +GET {{host}}/3.13/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/2to3.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/aifc.html -> '' +GET {{host}}/3.13/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/aifc.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/audioop.html -> '' +GET {{host}}/3.13/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/audioop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/cgi.html -> '' +GET {{host}}/3.13/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/cgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/cgitb.html -> '' +GET {{host}}/3.13/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/cgitb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/chunk.html -> '' +GET {{host}}/3.13/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/chunk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/crypt.html -> '' +GET {{host}}/3.13/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/crypt.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/imghdr.html -> '' +GET {{host}}/3.13/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/imghdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/mailcap.html -> '' +GET {{host}}/3.13/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/mailcap.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/msilib.html -> '' +GET {{host}}/3.13/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/msilib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/nis.html -> '' +GET {{host}}/3.13/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/nis.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/nntplib.html -> '' +GET {{host}}/3.13/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/nntplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/ossaudiodev.html -> '' +GET {{host}}/3.13/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/ossaudiodev.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/pipes.html -> '' +GET {{host}}/3.13/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/pipes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/sndhdr.html -> '' +GET {{host}}/3.13/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/sndhdr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/spwd.html -> '' +GET {{host}}/3.13/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/spwd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/sunau.html -> '' +GET {{host}}/3.13/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/sunau.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/telnetlib.html -> '' +GET {{host}}/3.13/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/telnetlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/tkinter.tix.html -> '' +GET {{host}}/3.13/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/tkinter.tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/uu.html -> '' +GET {{host}}/3.13/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/uu.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/xdrlib.html -> '' +GET {{host}}/3.13/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3.13/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3.13/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3.13/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3.13/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3.13/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3.13/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3.13/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3.13/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3.13/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3.13/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3.13/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3.13/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/xdrlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" diff --git a/tests/docs-redirects/specs/default-root.hurl b/tests/docs-redirects/specs/default-root.hurl new file mode 100644 index 00000000..d8ad0d6b --- /dev/null +++ b/tests/docs-redirects/specs/default-root.hurl @@ -0,0 +1,69 @@ +# Assert that Python 3 is the default at the root. + +GET {{host}}/ +HTTP 302 +[Asserts] +header "Location" == "http://localhost/3/" + + +# Assert that Python 3 is the default at the root of each translation. + +GET {{host}}/es/ +HTTP 302 +[Asserts] +header "Location" == "http://localhost/es/3/" + +GET {{host}}/fr/ +HTTP 302 +[Asserts] +header "Location" == "http://localhost/fr/3/" + +GET {{host}}/id/ +HTTP 302 +[Asserts] +header "Location" == "http://localhost/id/3/" + +GET {{host}}/it/ +HTTP 302 +[Asserts] +header "Location" == "http://localhost/it/3/" + +GET {{host}}/ja/ +HTTP 302 +[Asserts] +header "Location" == "http://localhost/ja/3/" + +GET {{host}}/ko/ +HTTP 302 +[Asserts] +header "Location" == "http://localhost/ko/3/" + +GET {{host}}/pl/ +HTTP 302 +[Asserts] +header "Location" == "http://localhost/pl/3/" + +GET {{host}}/pt-br/ +HTTP 302 +[Asserts] +header "Location" == "http://localhost/pt-br/3/" + +GET {{host}}/tr/ +HTTP 302 +[Asserts] +header "Location" == "http://localhost/tr/3/" + +GET {{host}}/uk/ +HTTP 302 +[Asserts] +header "Location" == "http://localhost/uk/3/" + +GET {{host}}/zh-cn/ +HTTP 302 +[Asserts] +header "Location" == "http://localhost/zh-cn/3/" + +GET {{host}}/zh-tw/ +HTTP 302 +[Asserts] +header "Location" == "http://localhost/zh-tw/3/" diff --git a/tests/docs-redirects/specs/devguide.hurl b/tests/docs-redirects/specs/devguide.hurl new file mode 100644 index 00000000..3b6e0a30 --- /dev/null +++ b/tests/docs-redirects/specs/devguide.hurl @@ -0,0 +1,54 @@ +# Assert that /devguide/ redirects to the Developer's Guide. + +GET {{host}}/devguide/ +HTTP 301 +[Asserts] +header "Location" == "https://devguide.python.org/" + +GET {{host}}/devguide/index.html +HTTP 301 +[Asserts] +header "Location" == "https://devguide.python.org/index.html" + + +# Assert that /documenting/ redirects to the Developer's Guide. + +GET {{host}}/documenting/ +HTTP 301 +[Asserts] +header "Location" == "https://devguide.python.org/documentation/start-documenting/" + +GET {{host}}/documenting/index.html +HTTP 301 +[Asserts] +header "Location" == "https://devguide.python.org/documentation/start-documenting/" + +GET {{host}}/documenting/intro.html +HTTP 301 +[Asserts] +header "Location" == "https://devguide.python.org/documentation/start-documenting/#introduction" + +GET {{host}}/documenting/style.html +HTTP 301 +[Asserts] +header "Location" == "https://devguide.python.org/documentation/style-guide/" + +GET {{host}}/documenting/rest.html +HTTP 301 +[Asserts] +header "Location" == "https://devguide.python.org/documentation/markup/" + +GET {{host}}/documenting/markup.html +HTTP 301 +[Asserts] +header "Location" == "https://devguide.python.org/documentation/markup/" + +GET {{host}}/documenting/fromlatex.html +HTTP 301 +[Asserts] +header "Location" == "https://devguide.python.org/documentation/markup/" + +GET {{host}}/documenting/building.html +HTTP 301 +[Asserts] +header "Location" == "https://devguide.python.org/documentation/start-documenting/#building-the-documentation" diff --git a/tests/docs-redirects/specs/ftp-download.hurl b/tests/docs-redirects/specs/ftp-download.hurl new file mode 100644 index 00000000..5c68864e --- /dev/null +++ b/tests/docs-redirects/specs/ftp-download.hurl @@ -0,0 +1,11 @@ +# Assert that /ftp/ redirects to www.python.org/ftp + +GET {{host}}/ftp/python/doc +HTTP 301 +[Asserts] +header "Location" == "https://www.python.org/ftp/python/doc" + +GET {{host}}/ftp/python/doc/3.4.5/python-3.4.5-docs-text.zip +HTTP 301 +[Asserts] +header "Location" == "https://www.python.org/ftp/python/doc/3.4.5/python-3.4.5-docs-text.zip" diff --git a/tests/docs-redirects/specs/gh-69190.hurl b/tests/docs-redirects/specs/gh-69190.hurl new file mode 100644 index 00000000..af3de497 --- /dev/null +++ b/tests/docs-redirects/specs/gh-69190.hurl @@ -0,0 +1,788 @@ +# Assert that asynchat, asyncore, and smptd (removed in Python 3.12) +# are redirected to the root + + +## Test: Redirect library/asynchat.html -> '' +GET {{host}}/3/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.12/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.12/" + +GET {{host}}/3.13/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.12/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.12/" + +GET {{host}}/es/3.13/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.12/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.12/" + +GET {{host}}/fr/3.13/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.12/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.12/" + +GET {{host}}/id/3.13/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.12/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.12/" + +GET {{host}}/it/3.13/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.12/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.12/" + +GET {{host}}/ja/3.13/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.12/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.12/" + +GET {{host}}/ko/3.13/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.12/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.12/" + +GET {{host}}/pl/3.13/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.12/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.12/" + +GET {{host}}/pt-br/3.13/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.12/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.12/" + +GET {{host}}/tr/3.13/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.12/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.12/" + +GET {{host}}/uk/3.13/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.12/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.12/" + +GET {{host}}/zh-cn/3.13/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.12/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.12/" + +GET {{host}}/zh-tw/3.13/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/asynchat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/asyncore.html -> '' +GET {{host}}/3/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.12/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.12/" + +GET {{host}}/3.13/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.12/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.12/" + +GET {{host}}/es/3.13/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.12/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.12/" + +GET {{host}}/fr/3.13/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.12/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.12/" + +GET {{host}}/id/3.13/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.12/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.12/" + +GET {{host}}/it/3.13/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.12/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.12/" + +GET {{host}}/ja/3.13/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.12/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.12/" + +GET {{host}}/ko/3.13/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.12/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.12/" + +GET {{host}}/pl/3.13/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.12/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.12/" + +GET {{host}}/pt-br/3.13/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.12/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.12/" + +GET {{host}}/tr/3.13/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.12/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.12/" + +GET {{host}}/uk/3.13/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.12/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.12/" + +GET {{host}}/zh-cn/3.13/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.12/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.12/" + +GET {{host}}/zh-tw/3.13/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/asyncore.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" + + +## Test: Redirect library/smtpd.html -> '' +GET {{host}}/3/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.12/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.12/" + +GET {{host}}/3.13/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.13/" + +GET {{host}}/3.14/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.14/" + +GET {{host}}/es/3/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.12/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.12/" + +GET {{host}}/es/3.13/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.13/" + +GET {{host}}/es/3.14/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.14/" + +GET {{host}}/fr/3/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.12/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.12/" + +GET {{host}}/fr/3.13/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.13/" + +GET {{host}}/fr/3.14/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.14/" + +GET {{host}}/id/3/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.12/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.12/" + +GET {{host}}/id/3.13/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.13/" + +GET {{host}}/id/3.14/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.14/" + +GET {{host}}/it/3/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.12/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.12/" + +GET {{host}}/it/3.13/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.13/" + +GET {{host}}/it/3.14/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.14/" + +GET {{host}}/ja/3/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.12/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.12/" + +GET {{host}}/ja/3.13/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.13/" + +GET {{host}}/ja/3.14/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.14/" + +GET {{host}}/ko/3/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.12/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.12/" + +GET {{host}}/ko/3.13/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.13/" + +GET {{host}}/ko/3.14/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.14/" + +GET {{host}}/pl/3/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.12/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.12/" + +GET {{host}}/pl/3.13/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.13/" + +GET {{host}}/pl/3.14/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.14/" + +GET {{host}}/pt-br/3/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.12/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.12/" + +GET {{host}}/pt-br/3.13/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.13/" + +GET {{host}}/pt-br/3.14/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.14/" + +GET {{host}}/tr/3/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.12/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.12/" + +GET {{host}}/tr/3.13/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.13/" + +GET {{host}}/tr/3.14/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.14/" + +GET {{host}}/uk/3/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.12/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.12/" + +GET {{host}}/uk/3.13/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.13/" + +GET {{host}}/uk/3.14/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.14/" + +GET {{host}}/zh-cn/3/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.12/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.12/" + +GET {{host}}/zh-cn/3.13/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.13/" + +GET {{host}}/zh-cn/3.14/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.14/" + +GET {{host}}/zh-tw/3/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.12/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.12/" + +GET {{host}}/zh-tw/3.13/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.13/" + +GET {{host}}/zh-tw/3.14/library/smtpd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.14/" diff --git a/tests/docs-redirects/specs/py2.5.hurl b/tests/docs-redirects/specs/py2.5.hurl new file mode 100644 index 00000000..c32c0a77 --- /dev/null +++ b/tests/docs-redirects/specs/py2.5.hurl @@ -0,0 +1,57 @@ +# Assert that pre-Python 2.5 URIs are redirected to their +# Python 2.6-and-later locations. + +GET {{host}}/lib/ +HTTP 301 +[Asserts] +header "Location" == "https://localhost/library/" + +GET {{host}}/lib/module-base64.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/library/base64.html" + +GET {{host}}/lib/module-sys.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/library/sys.html" + +GET {{host}}/tut/ +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tutorial/" + +GET {{host}}/tut/tut.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tutorial/" + +GET {{host}}/api/ +HTTP 301 +[Asserts] +header "Location" == "https://localhost/c-api/" + +GET {{host}}/ext/ +HTTP 301 +[Asserts] +header "Location" == "https://localhost/extending/" + +GET {{host}}/dist/ +HTTP 301 +[Asserts] +header "Location" == "https://docs.python.org/distutils/" + +GET {{host}}/inst/ +HTTP 301 +[Asserts] +header "Location" == "https://localhost/install/" + +GET {{host}}/doc/ +HTTP 301 +[Asserts] +header "Location" == "https://devguide.python.org/documenting.html" + +GET {{host}}/ref/ +HTTP 301 +[Asserts] +header "Location" == "https://localhost/reference/" diff --git a/tests/docs-redirects/specs/py2.7-PEP-3108.hurl b/tests/docs-redirects/specs/py2.7-PEP-3108.hurl new file mode 100644 index 00000000..04452484 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-PEP-3108.hurl @@ -0,0 +1,26508 @@ +# Assert that the modules removed in Python 3.0 (PEP 3108) +# are redirected to the root. + + +## Test: Redirect library/aepack.html -> '' +GET {{host}}/3/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/aepack.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/aetools.html -> '' +GET {{host}}/3/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/aetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/aetypes.html -> '' +GET {{host}}/3/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/aetypes.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/al.html -> '' +GET {{host}}/3/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/al.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/autogil.html -> '' +GET {{host}}/3/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/autogil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/bastion.html -> '' +GET {{host}}/3/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/bastion.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/bsddb.html -> '' +GET {{host}}/3/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/bsddb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/carbon.html -> '' +GET {{host}}/3/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/carbon.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/cd.html -> '' +GET {{host}}/3/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/cd.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/colorpicker.html -> '' +GET {{host}}/3/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/colorpicker.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/commands.html -> '' +GET {{host}}/3/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/commands.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/compiler.html -> '' +GET {{host}}/3/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/compiler.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/dbhash.html -> '' +GET {{host}}/3/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/dbhash.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/dircache.html -> '' +GET {{host}}/3/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/dircache.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/dl.html -> '' +GET {{host}}/3/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/dl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/dummy_thread.html -> '' +GET {{host}}/3/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/dummy_thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/easydialogs.html -> '' +GET {{host}}/3/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/easydialogs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/fl.html -> '' +GET {{host}}/3/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/fl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/fm.html -> '' +GET {{host}}/3/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/fm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/fpectl.html -> '' +GET {{host}}/3/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/fpectl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/fpformat.html -> '' +GET {{host}}/3/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/fpformat.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/framework.html -> '' +GET {{host}}/3/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/framework.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/future_builtins.html -> '' +GET {{host}}/3/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/future_builtins.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/gensuitemodule.html -> '' +GET {{host}}/3/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/gensuitemodule.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/gl.html -> '' +GET {{host}}/3/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/gl.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/hotshot.html -> '' +GET {{host}}/3/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/hotshot.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/htmllib.html -> '' +GET {{host}}/3/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/htmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/ic.html -> '' +GET {{host}}/3/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/ic.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/imageop.html -> '' +GET {{host}}/3/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/imageop.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/imgfile.html -> '' +GET {{host}}/3/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/imgfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/imputil.html -> '' +GET {{host}}/3/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/imputil.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/jpeg.html -> '' +GET {{host}}/3/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/jpeg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/mac.html -> '' +GET {{host}}/3/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/mac.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/macos.html -> '' +GET {{host}}/3/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/macos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/macosa.html -> '' +GET {{host}}/3/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/macosa.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/macostools.html -> '' +GET {{host}}/3/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/macostools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/md5.html -> '' +GET {{host}}/3/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/md5.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/mhlib.html -> '' +GET {{host}}/3/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/mhlib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/mimetools.html -> '' +GET {{host}}/3/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/mimetools.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/mimewriter.html -> '' +GET {{host}}/3/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/mimewriter.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/mimify.html -> '' +GET {{host}}/3/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/mimify.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/miniaeframe.html -> '' +GET {{host}}/3/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/miniaeframe.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/multifile.html -> '' +GET {{host}}/3/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/multifile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/mutex.html -> '' +GET {{host}}/3/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/mutex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/new.html -> '' +GET {{host}}/3/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/new.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/popen2.html -> '' +GET {{host}}/3/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/popen2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/posixfile.html -> '' +GET {{host}}/3/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/posixfile.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/restricted.html -> '' +GET {{host}}/3/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/restricted.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/rexec.html -> '' +GET {{host}}/3/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/rexec.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/rfc822.html -> '' +GET {{host}}/3/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/rfc822.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/sgi.html -> '' +GET {{host}}/3/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/sgi.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/sgmllib.html -> '' +GET {{host}}/3/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/sgmllib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/sha.html -> '' +GET {{host}}/3/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/sha.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/someos.html -> '' +GET {{host}}/3/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/someos.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/statvfs.html -> '' +GET {{host}}/3/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/statvfs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/sun.html -> '' +GET {{host}}/3/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/sun.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/sunaudio.html -> '' +GET {{host}}/3/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/sunaudio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect library/user.html -> '' +GET {{host}}/3/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/library/user.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" diff --git a/tests/docs-redirects/specs/py2.7-__builtin__.hurl b/tests/docs-redirects/specs/py2.7-__builtin__.hurl new file mode 100644 index 00000000..0c9b99f4 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-__builtin__.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/__builtin__.html -> library/builtins.html +GET {{host}}/3/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/builtins.html" + +GET {{host}}/3.5/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/builtins.html" + +GET {{host}}/3.6/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/builtins.html" + +GET {{host}}/3.7/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/builtins.html" + +GET {{host}}/3.8/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/builtins.html" + +GET {{host}}/3.9/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/builtins.html" + +GET {{host}}/3.10/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/builtins.html" + +GET {{host}}/es/3/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/builtins.html" + +GET {{host}}/es/3.5/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/builtins.html" + +GET {{host}}/es/3.6/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/builtins.html" + +GET {{host}}/es/3.7/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/builtins.html" + +GET {{host}}/es/3.8/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/builtins.html" + +GET {{host}}/es/3.9/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/builtins.html" + +GET {{host}}/es/3.10/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/builtins.html" + +GET {{host}}/fr/3/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/builtins.html" + +GET {{host}}/fr/3.5/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/builtins.html" + +GET {{host}}/fr/3.6/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/builtins.html" + +GET {{host}}/fr/3.7/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/builtins.html" + +GET {{host}}/fr/3.8/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/builtins.html" + +GET {{host}}/fr/3.9/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/builtins.html" + +GET {{host}}/fr/3.10/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/builtins.html" + +GET {{host}}/id/3/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/builtins.html" + +GET {{host}}/id/3.5/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/builtins.html" + +GET {{host}}/id/3.6/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/builtins.html" + +GET {{host}}/id/3.7/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/builtins.html" + +GET {{host}}/id/3.8/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/builtins.html" + +GET {{host}}/id/3.9/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/builtins.html" + +GET {{host}}/id/3.10/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/builtins.html" + +GET {{host}}/it/3/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/builtins.html" + +GET {{host}}/it/3.5/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/builtins.html" + +GET {{host}}/it/3.6/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/builtins.html" + +GET {{host}}/it/3.7/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/builtins.html" + +GET {{host}}/it/3.8/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/builtins.html" + +GET {{host}}/it/3.9/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/builtins.html" + +GET {{host}}/it/3.10/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/builtins.html" + +GET {{host}}/ja/3/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/builtins.html" + +GET {{host}}/ja/3.5/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/builtins.html" + +GET {{host}}/ja/3.6/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/builtins.html" + +GET {{host}}/ja/3.7/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/builtins.html" + +GET {{host}}/ja/3.8/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/builtins.html" + +GET {{host}}/ja/3.9/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/builtins.html" + +GET {{host}}/ja/3.10/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/builtins.html" + +GET {{host}}/ko/3/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/builtins.html" + +GET {{host}}/ko/3.5/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/builtins.html" + +GET {{host}}/ko/3.6/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/builtins.html" + +GET {{host}}/ko/3.7/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/builtins.html" + +GET {{host}}/ko/3.8/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/builtins.html" + +GET {{host}}/ko/3.9/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/builtins.html" + +GET {{host}}/ko/3.10/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/builtins.html" + +GET {{host}}/pl/3/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/builtins.html" + +GET {{host}}/pl/3.5/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/builtins.html" + +GET {{host}}/pl/3.6/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/builtins.html" + +GET {{host}}/pl/3.7/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/builtins.html" + +GET {{host}}/pl/3.8/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/builtins.html" + +GET {{host}}/pl/3.9/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/builtins.html" + +GET {{host}}/pl/3.10/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/builtins.html" + +GET {{host}}/pt-br/3/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/builtins.html" + +GET {{host}}/pt-br/3.5/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/builtins.html" + +GET {{host}}/pt-br/3.6/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/builtins.html" + +GET {{host}}/pt-br/3.7/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/builtins.html" + +GET {{host}}/pt-br/3.8/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/builtins.html" + +GET {{host}}/pt-br/3.9/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/builtins.html" + +GET {{host}}/pt-br/3.10/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/builtins.html" + +GET {{host}}/tr/3/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/builtins.html" + +GET {{host}}/tr/3.5/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/builtins.html" + +GET {{host}}/tr/3.6/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/builtins.html" + +GET {{host}}/tr/3.7/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/builtins.html" + +GET {{host}}/tr/3.8/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/builtins.html" + +GET {{host}}/tr/3.9/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/builtins.html" + +GET {{host}}/tr/3.10/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/builtins.html" + +GET {{host}}/uk/3/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/builtins.html" + +GET {{host}}/uk/3.5/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/builtins.html" + +GET {{host}}/uk/3.6/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/builtins.html" + +GET {{host}}/uk/3.7/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/builtins.html" + +GET {{host}}/uk/3.8/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/builtins.html" + +GET {{host}}/uk/3.9/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/builtins.html" + +GET {{host}}/uk/3.10/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/builtins.html" + +GET {{host}}/zh-cn/3/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/builtins.html" + +GET {{host}}/zh-cn/3.5/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/builtins.html" + +GET {{host}}/zh-cn/3.6/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/builtins.html" + +GET {{host}}/zh-cn/3.7/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/builtins.html" + +GET {{host}}/zh-cn/3.8/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/builtins.html" + +GET {{host}}/zh-cn/3.9/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/builtins.html" + +GET {{host}}/zh-cn/3.10/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/builtins.html" + +GET {{host}}/zh-tw/3/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/builtins.html" + +GET {{host}}/zh-tw/3.5/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/builtins.html" + +GET {{host}}/zh-tw/3.6/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/builtins.html" + +GET {{host}}/zh-tw/3.7/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/builtins.html" + +GET {{host}}/zh-tw/3.8/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/builtins.html" + +GET {{host}}/zh-tw/3.9/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/builtins.html" + +GET {{host}}/zh-tw/3.10/library/__builtin__.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/builtins.html" diff --git a/tests/docs-redirects/specs/py2.7-anydbm.hurl b/tests/docs-redirects/specs/py2.7-anydbm.hurl new file mode 100644 index 00000000..74bde3af --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-anydbm.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/anydbm.html -> library/dbm.html +GET {{host}}/3/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/dbm.html" + +GET {{host}}/3.5/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/dbm.html" + +GET {{host}}/3.6/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/dbm.html" + +GET {{host}}/3.7/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/dbm.html" + +GET {{host}}/3.8/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/dbm.html" + +GET {{host}}/3.9/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/dbm.html" + +GET {{host}}/3.10/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/dbm.html" + +GET {{host}}/es/3/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/dbm.html" + +GET {{host}}/es/3.5/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/dbm.html" + +GET {{host}}/es/3.6/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/dbm.html" + +GET {{host}}/es/3.7/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/dbm.html" + +GET {{host}}/es/3.8/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/dbm.html" + +GET {{host}}/es/3.9/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/dbm.html" + +GET {{host}}/es/3.10/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/dbm.html" + +GET {{host}}/fr/3/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/dbm.html" + +GET {{host}}/fr/3.5/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/dbm.html" + +GET {{host}}/fr/3.6/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/dbm.html" + +GET {{host}}/fr/3.7/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/dbm.html" + +GET {{host}}/fr/3.8/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/dbm.html" + +GET {{host}}/fr/3.9/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/dbm.html" + +GET {{host}}/fr/3.10/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/dbm.html" + +GET {{host}}/id/3/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/dbm.html" + +GET {{host}}/id/3.5/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/dbm.html" + +GET {{host}}/id/3.6/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/dbm.html" + +GET {{host}}/id/3.7/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/dbm.html" + +GET {{host}}/id/3.8/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/dbm.html" + +GET {{host}}/id/3.9/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/dbm.html" + +GET {{host}}/id/3.10/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/dbm.html" + +GET {{host}}/it/3/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/dbm.html" + +GET {{host}}/it/3.5/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/dbm.html" + +GET {{host}}/it/3.6/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/dbm.html" + +GET {{host}}/it/3.7/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/dbm.html" + +GET {{host}}/it/3.8/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/dbm.html" + +GET {{host}}/it/3.9/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/dbm.html" + +GET {{host}}/it/3.10/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/dbm.html" + +GET {{host}}/ja/3/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/dbm.html" + +GET {{host}}/ja/3.5/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/dbm.html" + +GET {{host}}/ja/3.6/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/dbm.html" + +GET {{host}}/ja/3.7/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/dbm.html" + +GET {{host}}/ja/3.8/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/dbm.html" + +GET {{host}}/ja/3.9/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/dbm.html" + +GET {{host}}/ja/3.10/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/dbm.html" + +GET {{host}}/ko/3/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/dbm.html" + +GET {{host}}/ko/3.5/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/dbm.html" + +GET {{host}}/ko/3.6/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/dbm.html" + +GET {{host}}/ko/3.7/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/dbm.html" + +GET {{host}}/ko/3.8/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/dbm.html" + +GET {{host}}/ko/3.9/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/dbm.html" + +GET {{host}}/ko/3.10/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/dbm.html" + +GET {{host}}/pl/3/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/dbm.html" + +GET {{host}}/pl/3.5/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/dbm.html" + +GET {{host}}/pl/3.6/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/dbm.html" + +GET {{host}}/pl/3.7/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/dbm.html" + +GET {{host}}/pl/3.8/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/dbm.html" + +GET {{host}}/pl/3.9/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/dbm.html" + +GET {{host}}/pl/3.10/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/dbm.html" + +GET {{host}}/pt-br/3/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/dbm.html" + +GET {{host}}/pt-br/3.5/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/dbm.html" + +GET {{host}}/pt-br/3.6/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/dbm.html" + +GET {{host}}/pt-br/3.7/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/dbm.html" + +GET {{host}}/pt-br/3.8/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/dbm.html" + +GET {{host}}/pt-br/3.9/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/dbm.html" + +GET {{host}}/pt-br/3.10/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/dbm.html" + +GET {{host}}/tr/3/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/dbm.html" + +GET {{host}}/tr/3.5/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/dbm.html" + +GET {{host}}/tr/3.6/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/dbm.html" + +GET {{host}}/tr/3.7/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/dbm.html" + +GET {{host}}/tr/3.8/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/dbm.html" + +GET {{host}}/tr/3.9/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/dbm.html" + +GET {{host}}/tr/3.10/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/dbm.html" + +GET {{host}}/uk/3/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/dbm.html" + +GET {{host}}/uk/3.5/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/dbm.html" + +GET {{host}}/uk/3.6/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/dbm.html" + +GET {{host}}/uk/3.7/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/dbm.html" + +GET {{host}}/uk/3.8/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/dbm.html" + +GET {{host}}/uk/3.9/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/dbm.html" + +GET {{host}}/uk/3.10/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/dbm.html" + +GET {{host}}/zh-cn/3/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/dbm.html" + +GET {{host}}/zh-cn/3.5/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/dbm.html" + +GET {{host}}/zh-cn/3.6/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/dbm.html" + +GET {{host}}/zh-cn/3.7/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/dbm.html" + +GET {{host}}/zh-cn/3.8/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/dbm.html" + +GET {{host}}/zh-cn/3.9/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/dbm.html" + +GET {{host}}/zh-cn/3.10/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/dbm.html" + +GET {{host}}/zh-tw/3/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/dbm.html" + +GET {{host}}/zh-tw/3.5/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/dbm.html" + +GET {{host}}/zh-tw/3.6/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/dbm.html" + +GET {{host}}/zh-tw/3.7/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/dbm.html" + +GET {{host}}/zh-tw/3.8/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/dbm.html" + +GET {{host}}/zh-tw/3.9/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/dbm.html" + +GET {{host}}/zh-tw/3.10/library/anydbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/dbm.html" diff --git a/tests/docs-redirects/specs/py2.7-basehttpserver.hurl b/tests/docs-redirects/specs/py2.7-basehttpserver.hurl new file mode 100644 index 00000000..52e39fd2 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-basehttpserver.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/basehttpserver.html -> library/http.server.html +GET {{host}}/3/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/http.server.html" + +GET {{host}}/3.5/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/http.server.html" + +GET {{host}}/3.6/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/http.server.html" + +GET {{host}}/3.7/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/http.server.html" + +GET {{host}}/3.8/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/http.server.html" + +GET {{host}}/3.9/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/http.server.html" + +GET {{host}}/3.10/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/http.server.html" + +GET {{host}}/es/3/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/http.server.html" + +GET {{host}}/es/3.5/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/http.server.html" + +GET {{host}}/es/3.6/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/http.server.html" + +GET {{host}}/es/3.7/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/http.server.html" + +GET {{host}}/es/3.8/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/http.server.html" + +GET {{host}}/es/3.9/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/http.server.html" + +GET {{host}}/es/3.10/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/http.server.html" + +GET {{host}}/fr/3/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/http.server.html" + +GET {{host}}/fr/3.5/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/http.server.html" + +GET {{host}}/fr/3.6/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/http.server.html" + +GET {{host}}/fr/3.7/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/http.server.html" + +GET {{host}}/fr/3.8/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/http.server.html" + +GET {{host}}/fr/3.9/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/http.server.html" + +GET {{host}}/fr/3.10/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/http.server.html" + +GET {{host}}/id/3/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/http.server.html" + +GET {{host}}/id/3.5/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/http.server.html" + +GET {{host}}/id/3.6/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/http.server.html" + +GET {{host}}/id/3.7/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/http.server.html" + +GET {{host}}/id/3.8/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/http.server.html" + +GET {{host}}/id/3.9/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/http.server.html" + +GET {{host}}/id/3.10/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/http.server.html" + +GET {{host}}/it/3/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/http.server.html" + +GET {{host}}/it/3.5/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/http.server.html" + +GET {{host}}/it/3.6/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/http.server.html" + +GET {{host}}/it/3.7/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/http.server.html" + +GET {{host}}/it/3.8/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/http.server.html" + +GET {{host}}/it/3.9/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/http.server.html" + +GET {{host}}/it/3.10/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/http.server.html" + +GET {{host}}/ja/3/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/http.server.html" + +GET {{host}}/ja/3.5/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/http.server.html" + +GET {{host}}/ja/3.6/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/http.server.html" + +GET {{host}}/ja/3.7/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/http.server.html" + +GET {{host}}/ja/3.8/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/http.server.html" + +GET {{host}}/ja/3.9/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/http.server.html" + +GET {{host}}/ja/3.10/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/http.server.html" + +GET {{host}}/ko/3/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/http.server.html" + +GET {{host}}/ko/3.5/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/http.server.html" + +GET {{host}}/ko/3.6/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/http.server.html" + +GET {{host}}/ko/3.7/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/http.server.html" + +GET {{host}}/ko/3.8/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/http.server.html" + +GET {{host}}/ko/3.9/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/http.server.html" + +GET {{host}}/ko/3.10/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/http.server.html" + +GET {{host}}/pl/3/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/http.server.html" + +GET {{host}}/pl/3.5/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/http.server.html" + +GET {{host}}/pl/3.6/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/http.server.html" + +GET {{host}}/pl/3.7/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/http.server.html" + +GET {{host}}/pl/3.8/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/http.server.html" + +GET {{host}}/pl/3.9/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/http.server.html" + +GET {{host}}/pl/3.10/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/http.server.html" + +GET {{host}}/pt-br/3/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/http.server.html" + +GET {{host}}/pt-br/3.5/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/http.server.html" + +GET {{host}}/pt-br/3.6/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/http.server.html" + +GET {{host}}/pt-br/3.7/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/http.server.html" + +GET {{host}}/pt-br/3.8/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/http.server.html" + +GET {{host}}/pt-br/3.9/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/http.server.html" + +GET {{host}}/pt-br/3.10/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/http.server.html" + +GET {{host}}/tr/3/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/http.server.html" + +GET {{host}}/tr/3.5/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/http.server.html" + +GET {{host}}/tr/3.6/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/http.server.html" + +GET {{host}}/tr/3.7/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/http.server.html" + +GET {{host}}/tr/3.8/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/http.server.html" + +GET {{host}}/tr/3.9/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/http.server.html" + +GET {{host}}/tr/3.10/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/http.server.html" + +GET {{host}}/uk/3/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/http.server.html" + +GET {{host}}/uk/3.5/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/http.server.html" + +GET {{host}}/uk/3.6/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/http.server.html" + +GET {{host}}/uk/3.7/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/http.server.html" + +GET {{host}}/uk/3.8/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/http.server.html" + +GET {{host}}/uk/3.9/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/http.server.html" + +GET {{host}}/uk/3.10/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/http.server.html" + +GET {{host}}/zh-cn/3/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/http.server.html" + +GET {{host}}/zh-cn/3.5/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/http.server.html" + +GET {{host}}/zh-cn/3.6/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/http.server.html" + +GET {{host}}/zh-cn/3.7/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/http.server.html" + +GET {{host}}/zh-cn/3.8/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/http.server.html" + +GET {{host}}/zh-cn/3.9/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/http.server.html" + +GET {{host}}/zh-cn/3.10/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/http.server.html" + +GET {{host}}/zh-tw/3/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/http.server.html" + +GET {{host}}/zh-tw/3.5/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/http.server.html" + +GET {{host}}/zh-tw/3.6/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/http.server.html" + +GET {{host}}/zh-tw/3.7/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/http.server.html" + +GET {{host}}/zh-tw/3.8/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/http.server.html" + +GET {{host}}/zh-tw/3.9/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/http.server.html" + +GET {{host}}/zh-tw/3.10/library/basehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/http.server.html" diff --git a/tests/docs-redirects/specs/py2.7-c-api.hurl b/tests/docs-redirects/specs/py2.7-c-api.hurl new file mode 100644 index 00000000..379b1278 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-c-api.hurl @@ -0,0 +1,1829 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect c-api/class.html -> c-api/ +GET {{host}}/3/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/c-api/" + +GET {{host}}/3.5/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/c-api/" + +GET {{host}}/3.6/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/c-api/" + +GET {{host}}/3.7/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/c-api/" + +GET {{host}}/3.8/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/c-api/" + +GET {{host}}/3.9/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/c-api/" + +GET {{host}}/3.10/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/c-api/" + +GET {{host}}/es/3/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/c-api/" + +GET {{host}}/es/3.5/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/c-api/" + +GET {{host}}/es/3.6/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/c-api/" + +GET {{host}}/es/3.7/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/c-api/" + +GET {{host}}/es/3.8/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/c-api/" + +GET {{host}}/es/3.9/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/c-api/" + +GET {{host}}/es/3.10/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/c-api/" + +GET {{host}}/fr/3/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/c-api/" + +GET {{host}}/fr/3.5/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/c-api/" + +GET {{host}}/fr/3.6/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/c-api/" + +GET {{host}}/fr/3.7/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/c-api/" + +GET {{host}}/fr/3.8/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/c-api/" + +GET {{host}}/fr/3.9/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/c-api/" + +GET {{host}}/fr/3.10/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/c-api/" + +GET {{host}}/id/3/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/c-api/" + +GET {{host}}/id/3.5/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/c-api/" + +GET {{host}}/id/3.6/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/c-api/" + +GET {{host}}/id/3.7/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/c-api/" + +GET {{host}}/id/3.8/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/c-api/" + +GET {{host}}/id/3.9/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/c-api/" + +GET {{host}}/id/3.10/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/c-api/" + +GET {{host}}/it/3/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/c-api/" + +GET {{host}}/it/3.5/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/c-api/" + +GET {{host}}/it/3.6/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/c-api/" + +GET {{host}}/it/3.7/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/c-api/" + +GET {{host}}/it/3.8/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/c-api/" + +GET {{host}}/it/3.9/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/c-api/" + +GET {{host}}/it/3.10/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/c-api/" + +GET {{host}}/ja/3/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/c-api/" + +GET {{host}}/ja/3.5/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/c-api/" + +GET {{host}}/ja/3.6/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/c-api/" + +GET {{host}}/ja/3.7/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/c-api/" + +GET {{host}}/ja/3.8/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/c-api/" + +GET {{host}}/ja/3.9/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/c-api/" + +GET {{host}}/ja/3.10/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/c-api/" + +GET {{host}}/ko/3/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/c-api/" + +GET {{host}}/ko/3.5/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/c-api/" + +GET {{host}}/ko/3.6/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/c-api/" + +GET {{host}}/ko/3.7/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/c-api/" + +GET {{host}}/ko/3.8/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/c-api/" + +GET {{host}}/ko/3.9/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/c-api/" + +GET {{host}}/ko/3.10/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/c-api/" + +GET {{host}}/pl/3/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/c-api/" + +GET {{host}}/pl/3.5/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/c-api/" + +GET {{host}}/pl/3.6/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/c-api/" + +GET {{host}}/pl/3.7/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/c-api/" + +GET {{host}}/pl/3.8/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/c-api/" + +GET {{host}}/pl/3.9/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/c-api/" + +GET {{host}}/pl/3.10/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/c-api/" + +GET {{host}}/pt-br/3/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/c-api/" + +GET {{host}}/pt-br/3.5/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/c-api/" + +GET {{host}}/pt-br/3.6/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/c-api/" + +GET {{host}}/pt-br/3.7/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/c-api/" + +GET {{host}}/pt-br/3.8/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/c-api/" + +GET {{host}}/pt-br/3.9/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/c-api/" + +GET {{host}}/pt-br/3.10/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/c-api/" + +GET {{host}}/tr/3/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/c-api/" + +GET {{host}}/tr/3.5/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/c-api/" + +GET {{host}}/tr/3.6/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/c-api/" + +GET {{host}}/tr/3.7/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/c-api/" + +GET {{host}}/tr/3.8/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/c-api/" + +GET {{host}}/tr/3.9/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/c-api/" + +GET {{host}}/tr/3.10/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/c-api/" + +GET {{host}}/uk/3/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/c-api/" + +GET {{host}}/uk/3.5/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/c-api/" + +GET {{host}}/uk/3.6/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/c-api/" + +GET {{host}}/uk/3.7/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/c-api/" + +GET {{host}}/uk/3.8/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/c-api/" + +GET {{host}}/uk/3.9/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/c-api/" + +GET {{host}}/uk/3.10/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/c-api/" + +GET {{host}}/zh-cn/3/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/c-api/" + +GET {{host}}/zh-cn/3.5/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/c-api/" + +GET {{host}}/zh-cn/3.6/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/c-api/" + +GET {{host}}/zh-cn/3.7/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/c-api/" + +GET {{host}}/zh-cn/3.8/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/c-api/" + +GET {{host}}/zh-cn/3.9/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/c-api/" + +GET {{host}}/zh-cn/3.10/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/c-api/" + +GET {{host}}/zh-tw/3/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/c-api/" + +GET {{host}}/zh-tw/3.5/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/c-api/" + +GET {{host}}/zh-tw/3.6/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/c-api/" + +GET {{host}}/zh-tw/3.7/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/c-api/" + +GET {{host}}/zh-tw/3.8/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/c-api/" + +GET {{host}}/zh-tw/3.9/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/c-api/" + +GET {{host}}/zh-tw/3.10/c-api/class.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/c-api/" + + +## Test: Redirect c-api/cobject.html -> c-api/ +GET {{host}}/3/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/c-api/" + +GET {{host}}/3.5/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/c-api/" + +GET {{host}}/3.6/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/c-api/" + +GET {{host}}/3.7/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/c-api/" + +GET {{host}}/3.8/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/c-api/" + +GET {{host}}/3.9/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/c-api/" + +GET {{host}}/3.10/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/c-api/" + +GET {{host}}/es/3/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/c-api/" + +GET {{host}}/es/3.5/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/c-api/" + +GET {{host}}/es/3.6/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/c-api/" + +GET {{host}}/es/3.7/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/c-api/" + +GET {{host}}/es/3.8/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/c-api/" + +GET {{host}}/es/3.9/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/c-api/" + +GET {{host}}/es/3.10/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/c-api/" + +GET {{host}}/fr/3/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/c-api/" + +GET {{host}}/fr/3.5/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/c-api/" + +GET {{host}}/fr/3.6/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/c-api/" + +GET {{host}}/fr/3.7/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/c-api/" + +GET {{host}}/fr/3.8/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/c-api/" + +GET {{host}}/fr/3.9/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/c-api/" + +GET {{host}}/fr/3.10/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/c-api/" + +GET {{host}}/id/3/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/c-api/" + +GET {{host}}/id/3.5/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/c-api/" + +GET {{host}}/id/3.6/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/c-api/" + +GET {{host}}/id/3.7/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/c-api/" + +GET {{host}}/id/3.8/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/c-api/" + +GET {{host}}/id/3.9/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/c-api/" + +GET {{host}}/id/3.10/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/c-api/" + +GET {{host}}/it/3/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/c-api/" + +GET {{host}}/it/3.5/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/c-api/" + +GET {{host}}/it/3.6/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/c-api/" + +GET {{host}}/it/3.7/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/c-api/" + +GET {{host}}/it/3.8/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/c-api/" + +GET {{host}}/it/3.9/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/c-api/" + +GET {{host}}/it/3.10/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/c-api/" + +GET {{host}}/ja/3/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/c-api/" + +GET {{host}}/ja/3.5/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/c-api/" + +GET {{host}}/ja/3.6/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/c-api/" + +GET {{host}}/ja/3.7/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/c-api/" + +GET {{host}}/ja/3.8/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/c-api/" + +GET {{host}}/ja/3.9/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/c-api/" + +GET {{host}}/ja/3.10/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/c-api/" + +GET {{host}}/ko/3/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/c-api/" + +GET {{host}}/ko/3.5/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/c-api/" + +GET {{host}}/ko/3.6/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/c-api/" + +GET {{host}}/ko/3.7/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/c-api/" + +GET {{host}}/ko/3.8/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/c-api/" + +GET {{host}}/ko/3.9/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/c-api/" + +GET {{host}}/ko/3.10/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/c-api/" + +GET {{host}}/pl/3/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/c-api/" + +GET {{host}}/pl/3.5/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/c-api/" + +GET {{host}}/pl/3.6/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/c-api/" + +GET {{host}}/pl/3.7/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/c-api/" + +GET {{host}}/pl/3.8/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/c-api/" + +GET {{host}}/pl/3.9/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/c-api/" + +GET {{host}}/pl/3.10/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/c-api/" + +GET {{host}}/pt-br/3/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/c-api/" + +GET {{host}}/pt-br/3.5/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/c-api/" + +GET {{host}}/pt-br/3.6/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/c-api/" + +GET {{host}}/pt-br/3.7/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/c-api/" + +GET {{host}}/pt-br/3.8/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/c-api/" + +GET {{host}}/pt-br/3.9/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/c-api/" + +GET {{host}}/pt-br/3.10/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/c-api/" + +GET {{host}}/tr/3/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/c-api/" + +GET {{host}}/tr/3.5/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/c-api/" + +GET {{host}}/tr/3.6/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/c-api/" + +GET {{host}}/tr/3.7/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/c-api/" + +GET {{host}}/tr/3.8/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/c-api/" + +GET {{host}}/tr/3.9/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/c-api/" + +GET {{host}}/tr/3.10/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/c-api/" + +GET {{host}}/uk/3/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/c-api/" + +GET {{host}}/uk/3.5/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/c-api/" + +GET {{host}}/uk/3.6/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/c-api/" + +GET {{host}}/uk/3.7/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/c-api/" + +GET {{host}}/uk/3.8/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/c-api/" + +GET {{host}}/uk/3.9/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/c-api/" + +GET {{host}}/uk/3.10/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/c-api/" + +GET {{host}}/zh-cn/3/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/c-api/" + +GET {{host}}/zh-cn/3.5/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/c-api/" + +GET {{host}}/zh-cn/3.6/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/c-api/" + +GET {{host}}/zh-cn/3.7/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/c-api/" + +GET {{host}}/zh-cn/3.8/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/c-api/" + +GET {{host}}/zh-cn/3.9/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/c-api/" + +GET {{host}}/zh-cn/3.10/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/c-api/" + +GET {{host}}/zh-tw/3/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/c-api/" + +GET {{host}}/zh-tw/3.5/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/c-api/" + +GET {{host}}/zh-tw/3.6/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/c-api/" + +GET {{host}}/zh-tw/3.7/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/c-api/" + +GET {{host}}/zh-tw/3.8/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/c-api/" + +GET {{host}}/zh-tw/3.9/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/c-api/" + +GET {{host}}/zh-tw/3.10/c-api/cobject.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/c-api/" + + +## Test: Redirect c-api/int.html -> c-api/ +GET {{host}}/3/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/c-api/" + +GET {{host}}/3.5/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/c-api/" + +GET {{host}}/3.6/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/c-api/" + +GET {{host}}/3.7/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/c-api/" + +GET {{host}}/3.8/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/c-api/" + +GET {{host}}/3.9/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/c-api/" + +GET {{host}}/3.10/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/c-api/" + +GET {{host}}/es/3/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/c-api/" + +GET {{host}}/es/3.5/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/c-api/" + +GET {{host}}/es/3.6/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/c-api/" + +GET {{host}}/es/3.7/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/c-api/" + +GET {{host}}/es/3.8/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/c-api/" + +GET {{host}}/es/3.9/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/c-api/" + +GET {{host}}/es/3.10/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/c-api/" + +GET {{host}}/fr/3/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/c-api/" + +GET {{host}}/fr/3.5/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/c-api/" + +GET {{host}}/fr/3.6/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/c-api/" + +GET {{host}}/fr/3.7/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/c-api/" + +GET {{host}}/fr/3.8/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/c-api/" + +GET {{host}}/fr/3.9/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/c-api/" + +GET {{host}}/fr/3.10/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/c-api/" + +GET {{host}}/id/3/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/c-api/" + +GET {{host}}/id/3.5/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/c-api/" + +GET {{host}}/id/3.6/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/c-api/" + +GET {{host}}/id/3.7/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/c-api/" + +GET {{host}}/id/3.8/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/c-api/" + +GET {{host}}/id/3.9/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/c-api/" + +GET {{host}}/id/3.10/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/c-api/" + +GET {{host}}/it/3/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/c-api/" + +GET {{host}}/it/3.5/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/c-api/" + +GET {{host}}/it/3.6/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/c-api/" + +GET {{host}}/it/3.7/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/c-api/" + +GET {{host}}/it/3.8/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/c-api/" + +GET {{host}}/it/3.9/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/c-api/" + +GET {{host}}/it/3.10/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/c-api/" + +GET {{host}}/ja/3/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/c-api/" + +GET {{host}}/ja/3.5/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/c-api/" + +GET {{host}}/ja/3.6/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/c-api/" + +GET {{host}}/ja/3.7/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/c-api/" + +GET {{host}}/ja/3.8/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/c-api/" + +GET {{host}}/ja/3.9/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/c-api/" + +GET {{host}}/ja/3.10/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/c-api/" + +GET {{host}}/ko/3/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/c-api/" + +GET {{host}}/ko/3.5/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/c-api/" + +GET {{host}}/ko/3.6/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/c-api/" + +GET {{host}}/ko/3.7/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/c-api/" + +GET {{host}}/ko/3.8/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/c-api/" + +GET {{host}}/ko/3.9/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/c-api/" + +GET {{host}}/ko/3.10/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/c-api/" + +GET {{host}}/pl/3/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/c-api/" + +GET {{host}}/pl/3.5/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/c-api/" + +GET {{host}}/pl/3.6/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/c-api/" + +GET {{host}}/pl/3.7/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/c-api/" + +GET {{host}}/pl/3.8/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/c-api/" + +GET {{host}}/pl/3.9/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/c-api/" + +GET {{host}}/pl/3.10/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/c-api/" + +GET {{host}}/pt-br/3/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/c-api/" + +GET {{host}}/pt-br/3.5/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/c-api/" + +GET {{host}}/pt-br/3.6/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/c-api/" + +GET {{host}}/pt-br/3.7/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/c-api/" + +GET {{host}}/pt-br/3.8/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/c-api/" + +GET {{host}}/pt-br/3.9/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/c-api/" + +GET {{host}}/pt-br/3.10/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/c-api/" + +GET {{host}}/tr/3/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/c-api/" + +GET {{host}}/tr/3.5/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/c-api/" + +GET {{host}}/tr/3.6/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/c-api/" + +GET {{host}}/tr/3.7/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/c-api/" + +GET {{host}}/tr/3.8/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/c-api/" + +GET {{host}}/tr/3.9/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/c-api/" + +GET {{host}}/tr/3.10/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/c-api/" + +GET {{host}}/uk/3/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/c-api/" + +GET {{host}}/uk/3.5/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/c-api/" + +GET {{host}}/uk/3.6/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/c-api/" + +GET {{host}}/uk/3.7/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/c-api/" + +GET {{host}}/uk/3.8/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/c-api/" + +GET {{host}}/uk/3.9/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/c-api/" + +GET {{host}}/uk/3.10/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/c-api/" + +GET {{host}}/zh-cn/3/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/c-api/" + +GET {{host}}/zh-cn/3.5/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/c-api/" + +GET {{host}}/zh-cn/3.6/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/c-api/" + +GET {{host}}/zh-cn/3.7/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/c-api/" + +GET {{host}}/zh-cn/3.8/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/c-api/" + +GET {{host}}/zh-cn/3.9/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/c-api/" + +GET {{host}}/zh-cn/3.10/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/c-api/" + +GET {{host}}/zh-tw/3/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/c-api/" + +GET {{host}}/zh-tw/3.5/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/c-api/" + +GET {{host}}/zh-tw/3.6/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/c-api/" + +GET {{host}}/zh-tw/3.7/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/c-api/" + +GET {{host}}/zh-tw/3.8/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/c-api/" + +GET {{host}}/zh-tw/3.9/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/c-api/" + +GET {{host}}/zh-tw/3.10/c-api/int.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/c-api/" + + +## Test: Redirect c-api/string.html -> c-api/ +GET {{host}}/3/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/c-api/" + +GET {{host}}/3.5/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/c-api/" + +GET {{host}}/3.6/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/c-api/" + +GET {{host}}/3.7/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/c-api/" + +GET {{host}}/3.8/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/c-api/" + +GET {{host}}/3.9/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/c-api/" + +GET {{host}}/3.10/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/c-api/" + +GET {{host}}/es/3/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/c-api/" + +GET {{host}}/es/3.5/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/c-api/" + +GET {{host}}/es/3.6/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/c-api/" + +GET {{host}}/es/3.7/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/c-api/" + +GET {{host}}/es/3.8/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/c-api/" + +GET {{host}}/es/3.9/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/c-api/" + +GET {{host}}/es/3.10/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/c-api/" + +GET {{host}}/fr/3/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/c-api/" + +GET {{host}}/fr/3.5/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/c-api/" + +GET {{host}}/fr/3.6/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/c-api/" + +GET {{host}}/fr/3.7/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/c-api/" + +GET {{host}}/fr/3.8/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/c-api/" + +GET {{host}}/fr/3.9/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/c-api/" + +GET {{host}}/fr/3.10/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/c-api/" + +GET {{host}}/id/3/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/c-api/" + +GET {{host}}/id/3.5/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/c-api/" + +GET {{host}}/id/3.6/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/c-api/" + +GET {{host}}/id/3.7/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/c-api/" + +GET {{host}}/id/3.8/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/c-api/" + +GET {{host}}/id/3.9/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/c-api/" + +GET {{host}}/id/3.10/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/c-api/" + +GET {{host}}/it/3/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/c-api/" + +GET {{host}}/it/3.5/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/c-api/" + +GET {{host}}/it/3.6/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/c-api/" + +GET {{host}}/it/3.7/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/c-api/" + +GET {{host}}/it/3.8/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/c-api/" + +GET {{host}}/it/3.9/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/c-api/" + +GET {{host}}/it/3.10/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/c-api/" + +GET {{host}}/ja/3/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/c-api/" + +GET {{host}}/ja/3.5/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/c-api/" + +GET {{host}}/ja/3.6/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/c-api/" + +GET {{host}}/ja/3.7/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/c-api/" + +GET {{host}}/ja/3.8/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/c-api/" + +GET {{host}}/ja/3.9/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/c-api/" + +GET {{host}}/ja/3.10/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/c-api/" + +GET {{host}}/ko/3/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/c-api/" + +GET {{host}}/ko/3.5/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/c-api/" + +GET {{host}}/ko/3.6/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/c-api/" + +GET {{host}}/ko/3.7/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/c-api/" + +GET {{host}}/ko/3.8/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/c-api/" + +GET {{host}}/ko/3.9/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/c-api/" + +GET {{host}}/ko/3.10/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/c-api/" + +GET {{host}}/pl/3/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/c-api/" + +GET {{host}}/pl/3.5/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/c-api/" + +GET {{host}}/pl/3.6/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/c-api/" + +GET {{host}}/pl/3.7/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/c-api/" + +GET {{host}}/pl/3.8/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/c-api/" + +GET {{host}}/pl/3.9/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/c-api/" + +GET {{host}}/pl/3.10/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/c-api/" + +GET {{host}}/pt-br/3/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/c-api/" + +GET {{host}}/pt-br/3.5/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/c-api/" + +GET {{host}}/pt-br/3.6/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/c-api/" + +GET {{host}}/pt-br/3.7/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/c-api/" + +GET {{host}}/pt-br/3.8/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/c-api/" + +GET {{host}}/pt-br/3.9/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/c-api/" + +GET {{host}}/pt-br/3.10/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/c-api/" + +GET {{host}}/tr/3/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/c-api/" + +GET {{host}}/tr/3.5/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/c-api/" + +GET {{host}}/tr/3.6/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/c-api/" + +GET {{host}}/tr/3.7/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/c-api/" + +GET {{host}}/tr/3.8/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/c-api/" + +GET {{host}}/tr/3.9/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/c-api/" + +GET {{host}}/tr/3.10/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/c-api/" + +GET {{host}}/uk/3/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/c-api/" + +GET {{host}}/uk/3.5/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/c-api/" + +GET {{host}}/uk/3.6/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/c-api/" + +GET {{host}}/uk/3.7/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/c-api/" + +GET {{host}}/uk/3.8/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/c-api/" + +GET {{host}}/uk/3.9/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/c-api/" + +GET {{host}}/uk/3.10/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/c-api/" + +GET {{host}}/zh-cn/3/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/c-api/" + +GET {{host}}/zh-cn/3.5/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/c-api/" + +GET {{host}}/zh-cn/3.6/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/c-api/" + +GET {{host}}/zh-cn/3.7/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/c-api/" + +GET {{host}}/zh-cn/3.8/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/c-api/" + +GET {{host}}/zh-cn/3.9/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/c-api/" + +GET {{host}}/zh-cn/3.10/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/c-api/" + +GET {{host}}/zh-tw/3/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/c-api/" + +GET {{host}}/zh-tw/3.5/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/c-api/" + +GET {{host}}/zh-tw/3.6/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/c-api/" + +GET {{host}}/zh-tw/3.7/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/c-api/" + +GET {{host}}/zh-tw/3.8/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/c-api/" + +GET {{host}}/zh-tw/3.9/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/c-api/" + +GET {{host}}/zh-tw/3.10/c-api/string.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/c-api/" diff --git a/tests/docs-redirects/specs/py2.7-cgihttpserver.hurl b/tests/docs-redirects/specs/py2.7-cgihttpserver.hurl new file mode 100644 index 00000000..4e04b9ca --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-cgihttpserver.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/cgihttpserver.html -> library/http.server.html#http.server.CGIHTTPRequestHandler +GET {{host}}/3/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/3.5/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/3.6/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/3.7/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/3.8/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/3.9/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/3.10/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/es/3/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/es/3.5/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/es/3.6/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/es/3.7/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/es/3.8/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/es/3.9/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/es/3.10/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/fr/3/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/fr/3.5/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/fr/3.6/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/fr/3.7/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/fr/3.8/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/fr/3.9/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/fr/3.10/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/id/3/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/id/3.5/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/id/3.6/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/id/3.7/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/id/3.8/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/id/3.9/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/id/3.10/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/it/3/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/it/3.5/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/it/3.6/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/it/3.7/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/it/3.8/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/it/3.9/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/it/3.10/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/ja/3/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/ja/3.5/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/ja/3.6/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/ja/3.7/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/ja/3.8/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/ja/3.9/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/ja/3.10/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/ko/3/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/ko/3.5/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/ko/3.6/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/ko/3.7/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/ko/3.8/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/ko/3.9/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/ko/3.10/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/pl/3/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/pl/3.5/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/pl/3.6/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/pl/3.7/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/pl/3.8/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/pl/3.9/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/pl/3.10/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/pt-br/3/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/pt-br/3.5/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/pt-br/3.6/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/pt-br/3.7/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/pt-br/3.8/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/pt-br/3.9/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/pt-br/3.10/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/tr/3/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/tr/3.5/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/tr/3.6/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/tr/3.7/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/tr/3.8/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/tr/3.9/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/tr/3.10/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/uk/3/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/uk/3.5/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/uk/3.6/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/uk/3.7/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/uk/3.8/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/uk/3.9/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/uk/3.10/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/zh-cn/3/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/zh-cn/3.5/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/zh-cn/3.6/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/zh-cn/3.7/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/zh-cn/3.8/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/zh-cn/3.9/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/zh-cn/3.10/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/zh-tw/3/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/zh-tw/3.5/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/zh-tw/3.6/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/zh-tw/3.7/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/zh-tw/3.8/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/zh-tw/3.9/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/http.server.html#http.server.CGIHTTPRequestHandler" + +GET {{host}}/zh-tw/3.10/library/cgihttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/http.server.html#http.server.CGIHTTPRequestHandler" diff --git a/tests/docs-redirects/specs/py2.7-cookie.hurl b/tests/docs-redirects/specs/py2.7-cookie.hurl new file mode 100644 index 00000000..54d17751 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-cookie.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/cookie.html -> library/http.cookies.html +GET {{host}}/3/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/http.cookies.html" + +GET {{host}}/3.5/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/http.cookies.html" + +GET {{host}}/3.6/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/http.cookies.html" + +GET {{host}}/3.7/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/http.cookies.html" + +GET {{host}}/3.8/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/http.cookies.html" + +GET {{host}}/3.9/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/http.cookies.html" + +GET {{host}}/3.10/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/http.cookies.html" + +GET {{host}}/es/3/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/http.cookies.html" + +GET {{host}}/es/3.5/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/http.cookies.html" + +GET {{host}}/es/3.6/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/http.cookies.html" + +GET {{host}}/es/3.7/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/http.cookies.html" + +GET {{host}}/es/3.8/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/http.cookies.html" + +GET {{host}}/es/3.9/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/http.cookies.html" + +GET {{host}}/es/3.10/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/http.cookies.html" + +GET {{host}}/fr/3/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/http.cookies.html" + +GET {{host}}/fr/3.5/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/http.cookies.html" + +GET {{host}}/fr/3.6/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/http.cookies.html" + +GET {{host}}/fr/3.7/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/http.cookies.html" + +GET {{host}}/fr/3.8/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/http.cookies.html" + +GET {{host}}/fr/3.9/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/http.cookies.html" + +GET {{host}}/fr/3.10/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/http.cookies.html" + +GET {{host}}/id/3/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/http.cookies.html" + +GET {{host}}/id/3.5/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/http.cookies.html" + +GET {{host}}/id/3.6/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/http.cookies.html" + +GET {{host}}/id/3.7/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/http.cookies.html" + +GET {{host}}/id/3.8/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/http.cookies.html" + +GET {{host}}/id/3.9/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/http.cookies.html" + +GET {{host}}/id/3.10/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/http.cookies.html" + +GET {{host}}/it/3/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/http.cookies.html" + +GET {{host}}/it/3.5/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/http.cookies.html" + +GET {{host}}/it/3.6/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/http.cookies.html" + +GET {{host}}/it/3.7/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/http.cookies.html" + +GET {{host}}/it/3.8/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/http.cookies.html" + +GET {{host}}/it/3.9/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/http.cookies.html" + +GET {{host}}/it/3.10/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/http.cookies.html" + +GET {{host}}/ja/3/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/http.cookies.html" + +GET {{host}}/ja/3.5/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/http.cookies.html" + +GET {{host}}/ja/3.6/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/http.cookies.html" + +GET {{host}}/ja/3.7/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/http.cookies.html" + +GET {{host}}/ja/3.8/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/http.cookies.html" + +GET {{host}}/ja/3.9/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/http.cookies.html" + +GET {{host}}/ja/3.10/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/http.cookies.html" + +GET {{host}}/ko/3/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/http.cookies.html" + +GET {{host}}/ko/3.5/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/http.cookies.html" + +GET {{host}}/ko/3.6/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/http.cookies.html" + +GET {{host}}/ko/3.7/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/http.cookies.html" + +GET {{host}}/ko/3.8/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/http.cookies.html" + +GET {{host}}/ko/3.9/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/http.cookies.html" + +GET {{host}}/ko/3.10/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/http.cookies.html" + +GET {{host}}/pl/3/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/http.cookies.html" + +GET {{host}}/pl/3.5/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/http.cookies.html" + +GET {{host}}/pl/3.6/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/http.cookies.html" + +GET {{host}}/pl/3.7/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/http.cookies.html" + +GET {{host}}/pl/3.8/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/http.cookies.html" + +GET {{host}}/pl/3.9/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/http.cookies.html" + +GET {{host}}/pl/3.10/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/http.cookies.html" + +GET {{host}}/pt-br/3/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/http.cookies.html" + +GET {{host}}/pt-br/3.5/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/http.cookies.html" + +GET {{host}}/pt-br/3.6/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/http.cookies.html" + +GET {{host}}/pt-br/3.7/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/http.cookies.html" + +GET {{host}}/pt-br/3.8/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/http.cookies.html" + +GET {{host}}/pt-br/3.9/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/http.cookies.html" + +GET {{host}}/pt-br/3.10/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/http.cookies.html" + +GET {{host}}/tr/3/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/http.cookies.html" + +GET {{host}}/tr/3.5/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/http.cookies.html" + +GET {{host}}/tr/3.6/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/http.cookies.html" + +GET {{host}}/tr/3.7/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/http.cookies.html" + +GET {{host}}/tr/3.8/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/http.cookies.html" + +GET {{host}}/tr/3.9/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/http.cookies.html" + +GET {{host}}/tr/3.10/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/http.cookies.html" + +GET {{host}}/uk/3/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/http.cookies.html" + +GET {{host}}/uk/3.5/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/http.cookies.html" + +GET {{host}}/uk/3.6/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/http.cookies.html" + +GET {{host}}/uk/3.7/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/http.cookies.html" + +GET {{host}}/uk/3.8/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/http.cookies.html" + +GET {{host}}/uk/3.9/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/http.cookies.html" + +GET {{host}}/uk/3.10/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/http.cookies.html" + +GET {{host}}/zh-cn/3/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/http.cookies.html" + +GET {{host}}/zh-cn/3.5/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/http.cookies.html" + +GET {{host}}/zh-cn/3.6/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/http.cookies.html" + +GET {{host}}/zh-cn/3.7/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/http.cookies.html" + +GET {{host}}/zh-cn/3.8/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/http.cookies.html" + +GET {{host}}/zh-cn/3.9/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/http.cookies.html" + +GET {{host}}/zh-cn/3.10/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/http.cookies.html" + +GET {{host}}/zh-tw/3/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/http.cookies.html" + +GET {{host}}/zh-tw/3.5/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/http.cookies.html" + +GET {{host}}/zh-tw/3.6/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/http.cookies.html" + +GET {{host}}/zh-tw/3.7/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/http.cookies.html" + +GET {{host}}/zh-tw/3.8/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/http.cookies.html" + +GET {{host}}/zh-tw/3.9/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/http.cookies.html" + +GET {{host}}/zh-tw/3.10/library/cookie.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/http.cookies.html" diff --git a/tests/docs-redirects/specs/py2.7-cookielib.hurl b/tests/docs-redirects/specs/py2.7-cookielib.hurl new file mode 100644 index 00000000..b95bde8c --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-cookielib.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/cookielib.html -> library/http.cookiejar.html +GET {{host}}/3/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/http.cookiejar.html" + +GET {{host}}/3.5/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/http.cookiejar.html" + +GET {{host}}/3.6/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/http.cookiejar.html" + +GET {{host}}/3.7/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/http.cookiejar.html" + +GET {{host}}/3.8/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/http.cookiejar.html" + +GET {{host}}/3.9/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/http.cookiejar.html" + +GET {{host}}/3.10/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/http.cookiejar.html" + +GET {{host}}/es/3/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/http.cookiejar.html" + +GET {{host}}/es/3.5/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/http.cookiejar.html" + +GET {{host}}/es/3.6/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/http.cookiejar.html" + +GET {{host}}/es/3.7/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/http.cookiejar.html" + +GET {{host}}/es/3.8/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/http.cookiejar.html" + +GET {{host}}/es/3.9/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/http.cookiejar.html" + +GET {{host}}/es/3.10/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/http.cookiejar.html" + +GET {{host}}/fr/3/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/http.cookiejar.html" + +GET {{host}}/fr/3.5/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/http.cookiejar.html" + +GET {{host}}/fr/3.6/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/http.cookiejar.html" + +GET {{host}}/fr/3.7/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/http.cookiejar.html" + +GET {{host}}/fr/3.8/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/http.cookiejar.html" + +GET {{host}}/fr/3.9/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/http.cookiejar.html" + +GET {{host}}/fr/3.10/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/http.cookiejar.html" + +GET {{host}}/id/3/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/http.cookiejar.html" + +GET {{host}}/id/3.5/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/http.cookiejar.html" + +GET {{host}}/id/3.6/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/http.cookiejar.html" + +GET {{host}}/id/3.7/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/http.cookiejar.html" + +GET {{host}}/id/3.8/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/http.cookiejar.html" + +GET {{host}}/id/3.9/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/http.cookiejar.html" + +GET {{host}}/id/3.10/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/http.cookiejar.html" + +GET {{host}}/it/3/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/http.cookiejar.html" + +GET {{host}}/it/3.5/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/http.cookiejar.html" + +GET {{host}}/it/3.6/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/http.cookiejar.html" + +GET {{host}}/it/3.7/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/http.cookiejar.html" + +GET {{host}}/it/3.8/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/http.cookiejar.html" + +GET {{host}}/it/3.9/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/http.cookiejar.html" + +GET {{host}}/it/3.10/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/http.cookiejar.html" + +GET {{host}}/ja/3/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/http.cookiejar.html" + +GET {{host}}/ja/3.5/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/http.cookiejar.html" + +GET {{host}}/ja/3.6/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/http.cookiejar.html" + +GET {{host}}/ja/3.7/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/http.cookiejar.html" + +GET {{host}}/ja/3.8/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/http.cookiejar.html" + +GET {{host}}/ja/3.9/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/http.cookiejar.html" + +GET {{host}}/ja/3.10/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/http.cookiejar.html" + +GET {{host}}/ko/3/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/http.cookiejar.html" + +GET {{host}}/ko/3.5/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/http.cookiejar.html" + +GET {{host}}/ko/3.6/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/http.cookiejar.html" + +GET {{host}}/ko/3.7/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/http.cookiejar.html" + +GET {{host}}/ko/3.8/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/http.cookiejar.html" + +GET {{host}}/ko/3.9/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/http.cookiejar.html" + +GET {{host}}/ko/3.10/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/http.cookiejar.html" + +GET {{host}}/pl/3/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/http.cookiejar.html" + +GET {{host}}/pl/3.5/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/http.cookiejar.html" + +GET {{host}}/pl/3.6/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/http.cookiejar.html" + +GET {{host}}/pl/3.7/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/http.cookiejar.html" + +GET {{host}}/pl/3.8/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/http.cookiejar.html" + +GET {{host}}/pl/3.9/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/http.cookiejar.html" + +GET {{host}}/pl/3.10/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/http.cookiejar.html" + +GET {{host}}/pt-br/3/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/http.cookiejar.html" + +GET {{host}}/pt-br/3.5/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/http.cookiejar.html" + +GET {{host}}/pt-br/3.6/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/http.cookiejar.html" + +GET {{host}}/pt-br/3.7/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/http.cookiejar.html" + +GET {{host}}/pt-br/3.8/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/http.cookiejar.html" + +GET {{host}}/pt-br/3.9/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/http.cookiejar.html" + +GET {{host}}/pt-br/3.10/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/http.cookiejar.html" + +GET {{host}}/tr/3/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/http.cookiejar.html" + +GET {{host}}/tr/3.5/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/http.cookiejar.html" + +GET {{host}}/tr/3.6/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/http.cookiejar.html" + +GET {{host}}/tr/3.7/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/http.cookiejar.html" + +GET {{host}}/tr/3.8/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/http.cookiejar.html" + +GET {{host}}/tr/3.9/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/http.cookiejar.html" + +GET {{host}}/tr/3.10/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/http.cookiejar.html" + +GET {{host}}/uk/3/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/http.cookiejar.html" + +GET {{host}}/uk/3.5/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/http.cookiejar.html" + +GET {{host}}/uk/3.6/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/http.cookiejar.html" + +GET {{host}}/uk/3.7/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/http.cookiejar.html" + +GET {{host}}/uk/3.8/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/http.cookiejar.html" + +GET {{host}}/uk/3.9/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/http.cookiejar.html" + +GET {{host}}/uk/3.10/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/http.cookiejar.html" + +GET {{host}}/zh-cn/3/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/http.cookiejar.html" + +GET {{host}}/zh-cn/3.5/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/http.cookiejar.html" + +GET {{host}}/zh-cn/3.6/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/http.cookiejar.html" + +GET {{host}}/zh-cn/3.7/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/http.cookiejar.html" + +GET {{host}}/zh-cn/3.8/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/http.cookiejar.html" + +GET {{host}}/zh-cn/3.9/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/http.cookiejar.html" + +GET {{host}}/zh-cn/3.10/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/http.cookiejar.html" + +GET {{host}}/zh-tw/3/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/http.cookiejar.html" + +GET {{host}}/zh-tw/3.5/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/http.cookiejar.html" + +GET {{host}}/zh-tw/3.6/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/http.cookiejar.html" + +GET {{host}}/zh-tw/3.7/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/http.cookiejar.html" + +GET {{host}}/zh-tw/3.8/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/http.cookiejar.html" + +GET {{host}}/zh-tw/3.9/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/http.cookiejar.html" + +GET {{host}}/zh-tw/3.10/library/cookielib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/http.cookiejar.html" diff --git a/tests/docs-redirects/specs/py2.7-copy_reg.hurl b/tests/docs-redirects/specs/py2.7-copy_reg.hurl new file mode 100644 index 00000000..7d214000 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-copy_reg.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/copy_reg.html -> library/copyreg.html +GET {{host}}/3/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/copyreg.html" + +GET {{host}}/3.5/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/copyreg.html" + +GET {{host}}/3.6/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/copyreg.html" + +GET {{host}}/3.7/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/copyreg.html" + +GET {{host}}/3.8/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/copyreg.html" + +GET {{host}}/3.9/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/copyreg.html" + +GET {{host}}/3.10/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/copyreg.html" + +GET {{host}}/es/3/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/copyreg.html" + +GET {{host}}/es/3.5/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/copyreg.html" + +GET {{host}}/es/3.6/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/copyreg.html" + +GET {{host}}/es/3.7/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/copyreg.html" + +GET {{host}}/es/3.8/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/copyreg.html" + +GET {{host}}/es/3.9/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/copyreg.html" + +GET {{host}}/es/3.10/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/copyreg.html" + +GET {{host}}/fr/3/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/copyreg.html" + +GET {{host}}/fr/3.5/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/copyreg.html" + +GET {{host}}/fr/3.6/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/copyreg.html" + +GET {{host}}/fr/3.7/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/copyreg.html" + +GET {{host}}/fr/3.8/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/copyreg.html" + +GET {{host}}/fr/3.9/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/copyreg.html" + +GET {{host}}/fr/3.10/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/copyreg.html" + +GET {{host}}/id/3/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/copyreg.html" + +GET {{host}}/id/3.5/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/copyreg.html" + +GET {{host}}/id/3.6/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/copyreg.html" + +GET {{host}}/id/3.7/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/copyreg.html" + +GET {{host}}/id/3.8/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/copyreg.html" + +GET {{host}}/id/3.9/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/copyreg.html" + +GET {{host}}/id/3.10/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/copyreg.html" + +GET {{host}}/it/3/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/copyreg.html" + +GET {{host}}/it/3.5/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/copyreg.html" + +GET {{host}}/it/3.6/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/copyreg.html" + +GET {{host}}/it/3.7/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/copyreg.html" + +GET {{host}}/it/3.8/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/copyreg.html" + +GET {{host}}/it/3.9/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/copyreg.html" + +GET {{host}}/it/3.10/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/copyreg.html" + +GET {{host}}/ja/3/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/copyreg.html" + +GET {{host}}/ja/3.5/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/copyreg.html" + +GET {{host}}/ja/3.6/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/copyreg.html" + +GET {{host}}/ja/3.7/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/copyreg.html" + +GET {{host}}/ja/3.8/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/copyreg.html" + +GET {{host}}/ja/3.9/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/copyreg.html" + +GET {{host}}/ja/3.10/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/copyreg.html" + +GET {{host}}/ko/3/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/copyreg.html" + +GET {{host}}/ko/3.5/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/copyreg.html" + +GET {{host}}/ko/3.6/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/copyreg.html" + +GET {{host}}/ko/3.7/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/copyreg.html" + +GET {{host}}/ko/3.8/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/copyreg.html" + +GET {{host}}/ko/3.9/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/copyreg.html" + +GET {{host}}/ko/3.10/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/copyreg.html" + +GET {{host}}/pl/3/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/copyreg.html" + +GET {{host}}/pl/3.5/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/copyreg.html" + +GET {{host}}/pl/3.6/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/copyreg.html" + +GET {{host}}/pl/3.7/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/copyreg.html" + +GET {{host}}/pl/3.8/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/copyreg.html" + +GET {{host}}/pl/3.9/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/copyreg.html" + +GET {{host}}/pl/3.10/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/copyreg.html" + +GET {{host}}/pt-br/3/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/copyreg.html" + +GET {{host}}/pt-br/3.5/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/copyreg.html" + +GET {{host}}/pt-br/3.6/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/copyreg.html" + +GET {{host}}/pt-br/3.7/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/copyreg.html" + +GET {{host}}/pt-br/3.8/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/copyreg.html" + +GET {{host}}/pt-br/3.9/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/copyreg.html" + +GET {{host}}/pt-br/3.10/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/copyreg.html" + +GET {{host}}/tr/3/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/copyreg.html" + +GET {{host}}/tr/3.5/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/copyreg.html" + +GET {{host}}/tr/3.6/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/copyreg.html" + +GET {{host}}/tr/3.7/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/copyreg.html" + +GET {{host}}/tr/3.8/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/copyreg.html" + +GET {{host}}/tr/3.9/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/copyreg.html" + +GET {{host}}/tr/3.10/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/copyreg.html" + +GET {{host}}/uk/3/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/copyreg.html" + +GET {{host}}/uk/3.5/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/copyreg.html" + +GET {{host}}/uk/3.6/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/copyreg.html" + +GET {{host}}/uk/3.7/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/copyreg.html" + +GET {{host}}/uk/3.8/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/copyreg.html" + +GET {{host}}/uk/3.9/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/copyreg.html" + +GET {{host}}/uk/3.10/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/copyreg.html" + +GET {{host}}/zh-cn/3/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/copyreg.html" + +GET {{host}}/zh-cn/3.5/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/copyreg.html" + +GET {{host}}/zh-cn/3.6/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/copyreg.html" + +GET {{host}}/zh-cn/3.7/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/copyreg.html" + +GET {{host}}/zh-cn/3.8/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/copyreg.html" + +GET {{host}}/zh-cn/3.9/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/copyreg.html" + +GET {{host}}/zh-cn/3.10/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/copyreg.html" + +GET {{host}}/zh-tw/3/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/copyreg.html" + +GET {{host}}/zh-tw/3.5/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/copyreg.html" + +GET {{host}}/zh-tw/3.6/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/copyreg.html" + +GET {{host}}/zh-tw/3.7/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/copyreg.html" + +GET {{host}}/zh-tw/3.8/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/copyreg.html" + +GET {{host}}/zh-tw/3.9/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/copyreg.html" + +GET {{host}}/zh-tw/3.10/library/copy_reg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/copyreg.html" diff --git a/tests/docs-redirects/specs/py2.7-docxmlrpcserver.hurl b/tests/docs-redirects/specs/py2.7-docxmlrpcserver.hurl new file mode 100644 index 00000000..488cc931 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-docxmlrpcserver.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/docxmlrpcserver.html -> library/xmlrpc.server.html#documenting-xmlrpc-server +GET {{host}}/3/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/3.5/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/3.6/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/3.7/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/3.8/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/3.9/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/3.10/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/es/3/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/es/3.5/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/es/3.6/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/es/3.7/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/es/3.8/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/es/3.9/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/es/3.10/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/fr/3/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/fr/3.5/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/fr/3.6/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/fr/3.7/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/fr/3.8/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/fr/3.9/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/fr/3.10/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/id/3/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/id/3.5/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/id/3.6/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/id/3.7/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/id/3.8/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/id/3.9/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/id/3.10/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/it/3/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/it/3.5/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/it/3.6/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/it/3.7/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/it/3.8/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/it/3.9/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/it/3.10/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/ja/3/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/ja/3.5/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/ja/3.6/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/ja/3.7/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/ja/3.8/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/ja/3.9/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/ja/3.10/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/ko/3/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/ko/3.5/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/ko/3.6/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/ko/3.7/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/ko/3.8/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/ko/3.9/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/ko/3.10/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/pl/3/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/pl/3.5/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/pl/3.6/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/pl/3.7/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/pl/3.8/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/pl/3.9/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/pl/3.10/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/pt-br/3/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/pt-br/3.5/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/pt-br/3.6/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/pt-br/3.7/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/pt-br/3.8/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/pt-br/3.9/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/pt-br/3.10/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/tr/3/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/tr/3.5/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/tr/3.6/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/tr/3.7/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/tr/3.8/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/tr/3.9/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/tr/3.10/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/uk/3/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/uk/3.5/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/uk/3.6/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/uk/3.7/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/uk/3.8/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/uk/3.9/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/uk/3.10/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/zh-cn/3/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/zh-cn/3.5/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/zh-cn/3.6/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/zh-cn/3.7/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/zh-cn/3.8/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/zh-cn/3.9/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/zh-cn/3.10/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/zh-tw/3/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/zh-tw/3.5/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/zh-tw/3.6/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/zh-tw/3.7/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/zh-tw/3.8/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/zh-tw/3.9/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/xmlrpc.server.html#documenting-xmlrpc-server" + +GET {{host}}/zh-tw/3.10/library/docxmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/xmlrpc.server.html#documenting-xmlrpc-server" diff --git a/tests/docs-redirects/specs/py2.7-dumbdbm.hurl b/tests/docs-redirects/specs/py2.7-dumbdbm.hurl new file mode 100644 index 00000000..14743316 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-dumbdbm.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/dumbdbm.html -> library/dbm.html#module-dbm.dumb +GET {{host}}/3/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/dbm.html#module-dbm.dumb" + +GET {{host}}/3.5/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/dbm.html#module-dbm.dumb" + +GET {{host}}/3.6/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/dbm.html#module-dbm.dumb" + +GET {{host}}/3.7/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/dbm.html#module-dbm.dumb" + +GET {{host}}/3.8/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/dbm.html#module-dbm.dumb" + +GET {{host}}/3.9/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/dbm.html#module-dbm.dumb" + +GET {{host}}/3.10/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/dbm.html#module-dbm.dumb" + +GET {{host}}/es/3/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/dbm.html#module-dbm.dumb" + +GET {{host}}/es/3.5/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/dbm.html#module-dbm.dumb" + +GET {{host}}/es/3.6/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/dbm.html#module-dbm.dumb" + +GET {{host}}/es/3.7/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/dbm.html#module-dbm.dumb" + +GET {{host}}/es/3.8/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/dbm.html#module-dbm.dumb" + +GET {{host}}/es/3.9/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/dbm.html#module-dbm.dumb" + +GET {{host}}/es/3.10/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/dbm.html#module-dbm.dumb" + +GET {{host}}/fr/3/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/dbm.html#module-dbm.dumb" + +GET {{host}}/fr/3.5/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/dbm.html#module-dbm.dumb" + +GET {{host}}/fr/3.6/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/dbm.html#module-dbm.dumb" + +GET {{host}}/fr/3.7/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/dbm.html#module-dbm.dumb" + +GET {{host}}/fr/3.8/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/dbm.html#module-dbm.dumb" + +GET {{host}}/fr/3.9/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/dbm.html#module-dbm.dumb" + +GET {{host}}/fr/3.10/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/dbm.html#module-dbm.dumb" + +GET {{host}}/id/3/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/dbm.html#module-dbm.dumb" + +GET {{host}}/id/3.5/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/dbm.html#module-dbm.dumb" + +GET {{host}}/id/3.6/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/dbm.html#module-dbm.dumb" + +GET {{host}}/id/3.7/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/dbm.html#module-dbm.dumb" + +GET {{host}}/id/3.8/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/dbm.html#module-dbm.dumb" + +GET {{host}}/id/3.9/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/dbm.html#module-dbm.dumb" + +GET {{host}}/id/3.10/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/dbm.html#module-dbm.dumb" + +GET {{host}}/it/3/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/dbm.html#module-dbm.dumb" + +GET {{host}}/it/3.5/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/dbm.html#module-dbm.dumb" + +GET {{host}}/it/3.6/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/dbm.html#module-dbm.dumb" + +GET {{host}}/it/3.7/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/dbm.html#module-dbm.dumb" + +GET {{host}}/it/3.8/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/dbm.html#module-dbm.dumb" + +GET {{host}}/it/3.9/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/dbm.html#module-dbm.dumb" + +GET {{host}}/it/3.10/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/dbm.html#module-dbm.dumb" + +GET {{host}}/ja/3/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/dbm.html#module-dbm.dumb" + +GET {{host}}/ja/3.5/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/dbm.html#module-dbm.dumb" + +GET {{host}}/ja/3.6/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/dbm.html#module-dbm.dumb" + +GET {{host}}/ja/3.7/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/dbm.html#module-dbm.dumb" + +GET {{host}}/ja/3.8/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/dbm.html#module-dbm.dumb" + +GET {{host}}/ja/3.9/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/dbm.html#module-dbm.dumb" + +GET {{host}}/ja/3.10/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/dbm.html#module-dbm.dumb" + +GET {{host}}/ko/3/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/dbm.html#module-dbm.dumb" + +GET {{host}}/ko/3.5/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/dbm.html#module-dbm.dumb" + +GET {{host}}/ko/3.6/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/dbm.html#module-dbm.dumb" + +GET {{host}}/ko/3.7/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/dbm.html#module-dbm.dumb" + +GET {{host}}/ko/3.8/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/dbm.html#module-dbm.dumb" + +GET {{host}}/ko/3.9/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/dbm.html#module-dbm.dumb" + +GET {{host}}/ko/3.10/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/dbm.html#module-dbm.dumb" + +GET {{host}}/pl/3/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/dbm.html#module-dbm.dumb" + +GET {{host}}/pl/3.5/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/dbm.html#module-dbm.dumb" + +GET {{host}}/pl/3.6/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/dbm.html#module-dbm.dumb" + +GET {{host}}/pl/3.7/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/dbm.html#module-dbm.dumb" + +GET {{host}}/pl/3.8/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/dbm.html#module-dbm.dumb" + +GET {{host}}/pl/3.9/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/dbm.html#module-dbm.dumb" + +GET {{host}}/pl/3.10/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/dbm.html#module-dbm.dumb" + +GET {{host}}/pt-br/3/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/dbm.html#module-dbm.dumb" + +GET {{host}}/pt-br/3.5/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/dbm.html#module-dbm.dumb" + +GET {{host}}/pt-br/3.6/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/dbm.html#module-dbm.dumb" + +GET {{host}}/pt-br/3.7/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/dbm.html#module-dbm.dumb" + +GET {{host}}/pt-br/3.8/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/dbm.html#module-dbm.dumb" + +GET {{host}}/pt-br/3.9/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/dbm.html#module-dbm.dumb" + +GET {{host}}/pt-br/3.10/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/dbm.html#module-dbm.dumb" + +GET {{host}}/tr/3/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/dbm.html#module-dbm.dumb" + +GET {{host}}/tr/3.5/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/dbm.html#module-dbm.dumb" + +GET {{host}}/tr/3.6/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/dbm.html#module-dbm.dumb" + +GET {{host}}/tr/3.7/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/dbm.html#module-dbm.dumb" + +GET {{host}}/tr/3.8/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/dbm.html#module-dbm.dumb" + +GET {{host}}/tr/3.9/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/dbm.html#module-dbm.dumb" + +GET {{host}}/tr/3.10/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/dbm.html#module-dbm.dumb" + +GET {{host}}/uk/3/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/dbm.html#module-dbm.dumb" + +GET {{host}}/uk/3.5/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/dbm.html#module-dbm.dumb" + +GET {{host}}/uk/3.6/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/dbm.html#module-dbm.dumb" + +GET {{host}}/uk/3.7/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/dbm.html#module-dbm.dumb" + +GET {{host}}/uk/3.8/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/dbm.html#module-dbm.dumb" + +GET {{host}}/uk/3.9/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/dbm.html#module-dbm.dumb" + +GET {{host}}/uk/3.10/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/dbm.html#module-dbm.dumb" + +GET {{host}}/zh-cn/3/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/dbm.html#module-dbm.dumb" + +GET {{host}}/zh-cn/3.5/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/dbm.html#module-dbm.dumb" + +GET {{host}}/zh-cn/3.6/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/dbm.html#module-dbm.dumb" + +GET {{host}}/zh-cn/3.7/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/dbm.html#module-dbm.dumb" + +GET {{host}}/zh-cn/3.8/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/dbm.html#module-dbm.dumb" + +GET {{host}}/zh-cn/3.9/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/dbm.html#module-dbm.dumb" + +GET {{host}}/zh-cn/3.10/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/dbm.html#module-dbm.dumb" + +GET {{host}}/zh-tw/3/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/dbm.html#module-dbm.dumb" + +GET {{host}}/zh-tw/3.5/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/dbm.html#module-dbm.dumb" + +GET {{host}}/zh-tw/3.6/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/dbm.html#module-dbm.dumb" + +GET {{host}}/zh-tw/3.7/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/dbm.html#module-dbm.dumb" + +GET {{host}}/zh-tw/3.8/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/dbm.html#module-dbm.dumb" + +GET {{host}}/zh-tw/3.9/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/dbm.html#module-dbm.dumb" + +GET {{host}}/zh-tw/3.10/library/dumbdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/dbm.html#module-dbm.dumb" diff --git a/tests/docs-redirects/specs/py2.7-email-examples.hurl b/tests/docs-redirects/specs/py2.7-email-examples.hurl new file mode 100644 index 00000000..e1ec544d --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-email-examples.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/email-examples.html -> library/email.examples.html +GET {{host}}/3/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/email.examples.html" + +GET {{host}}/3.5/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/email.examples.html" + +GET {{host}}/3.6/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/email.examples.html" + +GET {{host}}/3.7/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/email.examples.html" + +GET {{host}}/3.8/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/email.examples.html" + +GET {{host}}/3.9/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/email.examples.html" + +GET {{host}}/3.10/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/email.examples.html" + +GET {{host}}/es/3/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/email.examples.html" + +GET {{host}}/es/3.5/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/email.examples.html" + +GET {{host}}/es/3.6/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/email.examples.html" + +GET {{host}}/es/3.7/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/email.examples.html" + +GET {{host}}/es/3.8/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/email.examples.html" + +GET {{host}}/es/3.9/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/email.examples.html" + +GET {{host}}/es/3.10/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/email.examples.html" + +GET {{host}}/fr/3/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/email.examples.html" + +GET {{host}}/fr/3.5/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/email.examples.html" + +GET {{host}}/fr/3.6/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/email.examples.html" + +GET {{host}}/fr/3.7/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/email.examples.html" + +GET {{host}}/fr/3.8/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/email.examples.html" + +GET {{host}}/fr/3.9/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/email.examples.html" + +GET {{host}}/fr/3.10/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/email.examples.html" + +GET {{host}}/id/3/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/email.examples.html" + +GET {{host}}/id/3.5/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/email.examples.html" + +GET {{host}}/id/3.6/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/email.examples.html" + +GET {{host}}/id/3.7/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/email.examples.html" + +GET {{host}}/id/3.8/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/email.examples.html" + +GET {{host}}/id/3.9/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/email.examples.html" + +GET {{host}}/id/3.10/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/email.examples.html" + +GET {{host}}/it/3/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/email.examples.html" + +GET {{host}}/it/3.5/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/email.examples.html" + +GET {{host}}/it/3.6/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/email.examples.html" + +GET {{host}}/it/3.7/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/email.examples.html" + +GET {{host}}/it/3.8/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/email.examples.html" + +GET {{host}}/it/3.9/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/email.examples.html" + +GET {{host}}/it/3.10/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/email.examples.html" + +GET {{host}}/ja/3/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/email.examples.html" + +GET {{host}}/ja/3.5/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/email.examples.html" + +GET {{host}}/ja/3.6/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/email.examples.html" + +GET {{host}}/ja/3.7/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/email.examples.html" + +GET {{host}}/ja/3.8/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/email.examples.html" + +GET {{host}}/ja/3.9/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/email.examples.html" + +GET {{host}}/ja/3.10/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/email.examples.html" + +GET {{host}}/ko/3/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/email.examples.html" + +GET {{host}}/ko/3.5/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/email.examples.html" + +GET {{host}}/ko/3.6/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/email.examples.html" + +GET {{host}}/ko/3.7/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/email.examples.html" + +GET {{host}}/ko/3.8/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/email.examples.html" + +GET {{host}}/ko/3.9/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/email.examples.html" + +GET {{host}}/ko/3.10/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/email.examples.html" + +GET {{host}}/pl/3/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/email.examples.html" + +GET {{host}}/pl/3.5/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/email.examples.html" + +GET {{host}}/pl/3.6/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/email.examples.html" + +GET {{host}}/pl/3.7/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/email.examples.html" + +GET {{host}}/pl/3.8/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/email.examples.html" + +GET {{host}}/pl/3.9/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/email.examples.html" + +GET {{host}}/pl/3.10/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/email.examples.html" + +GET {{host}}/pt-br/3/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/email.examples.html" + +GET {{host}}/pt-br/3.5/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/email.examples.html" + +GET {{host}}/pt-br/3.6/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/email.examples.html" + +GET {{host}}/pt-br/3.7/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/email.examples.html" + +GET {{host}}/pt-br/3.8/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/email.examples.html" + +GET {{host}}/pt-br/3.9/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/email.examples.html" + +GET {{host}}/pt-br/3.10/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/email.examples.html" + +GET {{host}}/tr/3/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/email.examples.html" + +GET {{host}}/tr/3.5/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/email.examples.html" + +GET {{host}}/tr/3.6/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/email.examples.html" + +GET {{host}}/tr/3.7/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/email.examples.html" + +GET {{host}}/tr/3.8/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/email.examples.html" + +GET {{host}}/tr/3.9/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/email.examples.html" + +GET {{host}}/tr/3.10/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/email.examples.html" + +GET {{host}}/uk/3/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/email.examples.html" + +GET {{host}}/uk/3.5/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/email.examples.html" + +GET {{host}}/uk/3.6/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/email.examples.html" + +GET {{host}}/uk/3.7/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/email.examples.html" + +GET {{host}}/uk/3.8/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/email.examples.html" + +GET {{host}}/uk/3.9/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/email.examples.html" + +GET {{host}}/uk/3.10/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/email.examples.html" + +GET {{host}}/zh-cn/3/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/email.examples.html" + +GET {{host}}/zh-cn/3.5/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/email.examples.html" + +GET {{host}}/zh-cn/3.6/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/email.examples.html" + +GET {{host}}/zh-cn/3.7/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/email.examples.html" + +GET {{host}}/zh-cn/3.8/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/email.examples.html" + +GET {{host}}/zh-cn/3.9/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/email.examples.html" + +GET {{host}}/zh-cn/3.10/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/email.examples.html" + +GET {{host}}/zh-tw/3/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/email.examples.html" + +GET {{host}}/zh-tw/3.5/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/email.examples.html" + +GET {{host}}/zh-tw/3.6/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/email.examples.html" + +GET {{host}}/zh-tw/3.7/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/email.examples.html" + +GET {{host}}/zh-tw/3.8/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/email.examples.html" + +GET {{host}}/zh-tw/3.9/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/email.examples.html" + +GET {{host}}/zh-tw/3.10/library/email-examples.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/email.examples.html" diff --git a/tests/docs-redirects/specs/py2.7-email.util.hurl b/tests/docs-redirects/specs/py2.7-email.util.hurl new file mode 100644 index 00000000..6db2348f --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-email.util.hurl @@ -0,0 +1,263 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/email.util.html -> library/email.utils.html +GET {{host}}/3/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/email.utils.html" + +GET {{host}}/3.6/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/email.utils.html" + +GET {{host}}/3.7/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/email.utils.html" + +GET {{host}}/3.8/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/email.utils.html" + +GET {{host}}/es/3/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/email.utils.html" + +GET {{host}}/es/3.6/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/email.utils.html" + +GET {{host}}/es/3.7/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/email.utils.html" + +GET {{host}}/es/3.8/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/email.utils.html" + +GET {{host}}/fr/3/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/email.utils.html" + +GET {{host}}/fr/3.6/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/email.utils.html" + +GET {{host}}/fr/3.7/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/email.utils.html" + +GET {{host}}/fr/3.8/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/email.utils.html" + +GET {{host}}/id/3/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/email.utils.html" + +GET {{host}}/id/3.6/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/email.utils.html" + +GET {{host}}/id/3.7/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/email.utils.html" + +GET {{host}}/id/3.8/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/email.utils.html" + +GET {{host}}/it/3/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/email.utils.html" + +GET {{host}}/it/3.6/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/email.utils.html" + +GET {{host}}/it/3.7/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/email.utils.html" + +GET {{host}}/it/3.8/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/email.utils.html" + +GET {{host}}/ja/3/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/email.utils.html" + +GET {{host}}/ja/3.6/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/email.utils.html" + +GET {{host}}/ja/3.7/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/email.utils.html" + +GET {{host}}/ja/3.8/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/email.utils.html" + +GET {{host}}/ko/3/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/email.utils.html" + +GET {{host}}/ko/3.6/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/email.utils.html" + +GET {{host}}/ko/3.7/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/email.utils.html" + +GET {{host}}/ko/3.8/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/email.utils.html" + +GET {{host}}/pl/3/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/email.utils.html" + +GET {{host}}/pl/3.6/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/email.utils.html" + +GET {{host}}/pl/3.7/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/email.utils.html" + +GET {{host}}/pl/3.8/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/email.utils.html" + +GET {{host}}/pt-br/3/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/email.utils.html" + +GET {{host}}/pt-br/3.6/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/email.utils.html" + +GET {{host}}/pt-br/3.7/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/email.utils.html" + +GET {{host}}/pt-br/3.8/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/email.utils.html" + +GET {{host}}/tr/3/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/email.utils.html" + +GET {{host}}/tr/3.6/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/email.utils.html" + +GET {{host}}/tr/3.7/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/email.utils.html" + +GET {{host}}/tr/3.8/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/email.utils.html" + +GET {{host}}/uk/3/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/email.utils.html" + +GET {{host}}/uk/3.6/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/email.utils.html" + +GET {{host}}/uk/3.7/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/email.utils.html" + +GET {{host}}/uk/3.8/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/email.utils.html" + +GET {{host}}/zh-cn/3/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/email.utils.html" + +GET {{host}}/zh-cn/3.6/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/email.utils.html" + +GET {{host}}/zh-cn/3.7/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/email.utils.html" + +GET {{host}}/zh-cn/3.8/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/email.utils.html" + +GET {{host}}/zh-tw/3/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/email.utils.html" + +GET {{host}}/zh-tw/3.6/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/email.utils.html" + +GET {{host}}/zh-tw/3.7/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/email.utils.html" + +GET {{host}}/zh-tw/3.8/library/email.util.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/email.utils.html" diff --git a/tests/docs-redirects/specs/py2.7-gdbm.hurl b/tests/docs-redirects/specs/py2.7-gdbm.hurl new file mode 100644 index 00000000..22158f72 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-gdbm.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/gdbm.html -> library/dbm.html#module-dbm.gnu +GET {{host}}/3/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/dbm.html#module-dbm.gnu" + +GET {{host}}/3.5/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/dbm.html#module-dbm.gnu" + +GET {{host}}/3.6/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/dbm.html#module-dbm.gnu" + +GET {{host}}/3.7/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/dbm.html#module-dbm.gnu" + +GET {{host}}/3.8/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/dbm.html#module-dbm.gnu" + +GET {{host}}/3.9/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/dbm.html#module-dbm.gnu" + +GET {{host}}/3.10/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/dbm.html#module-dbm.gnu" + +GET {{host}}/es/3/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/dbm.html#module-dbm.gnu" + +GET {{host}}/es/3.5/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/dbm.html#module-dbm.gnu" + +GET {{host}}/es/3.6/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/dbm.html#module-dbm.gnu" + +GET {{host}}/es/3.7/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/dbm.html#module-dbm.gnu" + +GET {{host}}/es/3.8/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/dbm.html#module-dbm.gnu" + +GET {{host}}/es/3.9/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/dbm.html#module-dbm.gnu" + +GET {{host}}/es/3.10/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/dbm.html#module-dbm.gnu" + +GET {{host}}/fr/3/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/dbm.html#module-dbm.gnu" + +GET {{host}}/fr/3.5/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/dbm.html#module-dbm.gnu" + +GET {{host}}/fr/3.6/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/dbm.html#module-dbm.gnu" + +GET {{host}}/fr/3.7/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/dbm.html#module-dbm.gnu" + +GET {{host}}/fr/3.8/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/dbm.html#module-dbm.gnu" + +GET {{host}}/fr/3.9/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/dbm.html#module-dbm.gnu" + +GET {{host}}/fr/3.10/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/dbm.html#module-dbm.gnu" + +GET {{host}}/id/3/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/dbm.html#module-dbm.gnu" + +GET {{host}}/id/3.5/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/dbm.html#module-dbm.gnu" + +GET {{host}}/id/3.6/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/dbm.html#module-dbm.gnu" + +GET {{host}}/id/3.7/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/dbm.html#module-dbm.gnu" + +GET {{host}}/id/3.8/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/dbm.html#module-dbm.gnu" + +GET {{host}}/id/3.9/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/dbm.html#module-dbm.gnu" + +GET {{host}}/id/3.10/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/dbm.html#module-dbm.gnu" + +GET {{host}}/it/3/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/dbm.html#module-dbm.gnu" + +GET {{host}}/it/3.5/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/dbm.html#module-dbm.gnu" + +GET {{host}}/it/3.6/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/dbm.html#module-dbm.gnu" + +GET {{host}}/it/3.7/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/dbm.html#module-dbm.gnu" + +GET {{host}}/it/3.8/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/dbm.html#module-dbm.gnu" + +GET {{host}}/it/3.9/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/dbm.html#module-dbm.gnu" + +GET {{host}}/it/3.10/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/dbm.html#module-dbm.gnu" + +GET {{host}}/ja/3/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/dbm.html#module-dbm.gnu" + +GET {{host}}/ja/3.5/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/dbm.html#module-dbm.gnu" + +GET {{host}}/ja/3.6/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/dbm.html#module-dbm.gnu" + +GET {{host}}/ja/3.7/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/dbm.html#module-dbm.gnu" + +GET {{host}}/ja/3.8/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/dbm.html#module-dbm.gnu" + +GET {{host}}/ja/3.9/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/dbm.html#module-dbm.gnu" + +GET {{host}}/ja/3.10/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/dbm.html#module-dbm.gnu" + +GET {{host}}/ko/3/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/dbm.html#module-dbm.gnu" + +GET {{host}}/ko/3.5/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/dbm.html#module-dbm.gnu" + +GET {{host}}/ko/3.6/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/dbm.html#module-dbm.gnu" + +GET {{host}}/ko/3.7/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/dbm.html#module-dbm.gnu" + +GET {{host}}/ko/3.8/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/dbm.html#module-dbm.gnu" + +GET {{host}}/ko/3.9/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/dbm.html#module-dbm.gnu" + +GET {{host}}/ko/3.10/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/dbm.html#module-dbm.gnu" + +GET {{host}}/pl/3/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/dbm.html#module-dbm.gnu" + +GET {{host}}/pl/3.5/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/dbm.html#module-dbm.gnu" + +GET {{host}}/pl/3.6/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/dbm.html#module-dbm.gnu" + +GET {{host}}/pl/3.7/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/dbm.html#module-dbm.gnu" + +GET {{host}}/pl/3.8/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/dbm.html#module-dbm.gnu" + +GET {{host}}/pl/3.9/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/dbm.html#module-dbm.gnu" + +GET {{host}}/pl/3.10/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/dbm.html#module-dbm.gnu" + +GET {{host}}/pt-br/3/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/dbm.html#module-dbm.gnu" + +GET {{host}}/pt-br/3.5/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/dbm.html#module-dbm.gnu" + +GET {{host}}/pt-br/3.6/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/dbm.html#module-dbm.gnu" + +GET {{host}}/pt-br/3.7/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/dbm.html#module-dbm.gnu" + +GET {{host}}/pt-br/3.8/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/dbm.html#module-dbm.gnu" + +GET {{host}}/pt-br/3.9/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/dbm.html#module-dbm.gnu" + +GET {{host}}/pt-br/3.10/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/dbm.html#module-dbm.gnu" + +GET {{host}}/tr/3/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/dbm.html#module-dbm.gnu" + +GET {{host}}/tr/3.5/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/dbm.html#module-dbm.gnu" + +GET {{host}}/tr/3.6/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/dbm.html#module-dbm.gnu" + +GET {{host}}/tr/3.7/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/dbm.html#module-dbm.gnu" + +GET {{host}}/tr/3.8/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/dbm.html#module-dbm.gnu" + +GET {{host}}/tr/3.9/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/dbm.html#module-dbm.gnu" + +GET {{host}}/tr/3.10/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/dbm.html#module-dbm.gnu" + +GET {{host}}/uk/3/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/dbm.html#module-dbm.gnu" + +GET {{host}}/uk/3.5/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/dbm.html#module-dbm.gnu" + +GET {{host}}/uk/3.6/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/dbm.html#module-dbm.gnu" + +GET {{host}}/uk/3.7/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/dbm.html#module-dbm.gnu" + +GET {{host}}/uk/3.8/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/dbm.html#module-dbm.gnu" + +GET {{host}}/uk/3.9/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/dbm.html#module-dbm.gnu" + +GET {{host}}/uk/3.10/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/dbm.html#module-dbm.gnu" + +GET {{host}}/zh-cn/3/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/dbm.html#module-dbm.gnu" + +GET {{host}}/zh-cn/3.5/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/dbm.html#module-dbm.gnu" + +GET {{host}}/zh-cn/3.6/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/dbm.html#module-dbm.gnu" + +GET {{host}}/zh-cn/3.7/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/dbm.html#module-dbm.gnu" + +GET {{host}}/zh-cn/3.8/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/dbm.html#module-dbm.gnu" + +GET {{host}}/zh-cn/3.9/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/dbm.html#module-dbm.gnu" + +GET {{host}}/zh-cn/3.10/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/dbm.html#module-dbm.gnu" + +GET {{host}}/zh-tw/3/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/dbm.html#module-dbm.gnu" + +GET {{host}}/zh-tw/3.5/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/dbm.html#module-dbm.gnu" + +GET {{host}}/zh-tw/3.6/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/dbm.html#module-dbm.gnu" + +GET {{host}}/zh-tw/3.7/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/dbm.html#module-dbm.gnu" + +GET {{host}}/zh-tw/3.8/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/dbm.html#module-dbm.gnu" + +GET {{host}}/zh-tw/3.9/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/dbm.html#module-dbm.gnu" + +GET {{host}}/zh-tw/3.10/library/gdbm.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/dbm.html#module-dbm.gnu" diff --git a/tests/docs-redirects/specs/py2.7-howto.hurl b/tests/docs-redirects/specs/py2.7-howto.hurl new file mode 100644 index 00000000..d896b6da --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-howto.hurl @@ -0,0 +1,915 @@ +# Test redirection of documents moved or deleted in Python 3.0 + + +## Test: Redirect howto/doanddont.html -> '' +GET {{host}}/3/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/howto/doanddont.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" + + +## Test: Redirect howto/webservers.html -> '' +GET {{host}}/3/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/" + +GET {{host}}/3.5/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/" + +GET {{host}}/3.6/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/" + +GET {{host}}/3.7/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/" + +GET {{host}}/3.8/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/" + +GET {{host}}/3.9/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/" + +GET {{host}}/3.10/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/" + +GET {{host}}/es/3/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/" + +GET {{host}}/es/3.5/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/" + +GET {{host}}/es/3.6/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/" + +GET {{host}}/es/3.7/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/" + +GET {{host}}/es/3.8/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/" + +GET {{host}}/es/3.9/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/" + +GET {{host}}/es/3.10/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/" + +GET {{host}}/fr/3/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/" + +GET {{host}}/fr/3.5/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/" + +GET {{host}}/fr/3.6/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/" + +GET {{host}}/fr/3.7/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/" + +GET {{host}}/fr/3.8/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/" + +GET {{host}}/fr/3.9/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/" + +GET {{host}}/fr/3.10/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/" + +GET {{host}}/id/3/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/" + +GET {{host}}/id/3.5/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/" + +GET {{host}}/id/3.6/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/" + +GET {{host}}/id/3.7/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/" + +GET {{host}}/id/3.8/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/" + +GET {{host}}/id/3.9/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/" + +GET {{host}}/id/3.10/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/" + +GET {{host}}/it/3/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/" + +GET {{host}}/it/3.5/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/" + +GET {{host}}/it/3.6/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/" + +GET {{host}}/it/3.7/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/" + +GET {{host}}/it/3.8/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/" + +GET {{host}}/it/3.9/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/" + +GET {{host}}/it/3.10/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/" + +GET {{host}}/ja/3/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/" + +GET {{host}}/ja/3.5/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/" + +GET {{host}}/ja/3.6/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/" + +GET {{host}}/ja/3.7/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/" + +GET {{host}}/ja/3.8/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/" + +GET {{host}}/ja/3.9/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/" + +GET {{host}}/ja/3.10/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/" + +GET {{host}}/ko/3/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/" + +GET {{host}}/ko/3.5/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/" + +GET {{host}}/ko/3.6/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/" + +GET {{host}}/ko/3.7/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/" + +GET {{host}}/ko/3.8/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/" + +GET {{host}}/ko/3.9/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/" + +GET {{host}}/ko/3.10/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/" + +GET {{host}}/pl/3/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/" + +GET {{host}}/pl/3.5/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/" + +GET {{host}}/pl/3.6/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/" + +GET {{host}}/pl/3.7/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/" + +GET {{host}}/pl/3.8/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/" + +GET {{host}}/pl/3.9/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/" + +GET {{host}}/pl/3.10/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/" + +GET {{host}}/pt-br/3/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/" + +GET {{host}}/pt-br/3.5/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/" + +GET {{host}}/pt-br/3.6/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/" + +GET {{host}}/pt-br/3.7/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/" + +GET {{host}}/pt-br/3.8/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/" + +GET {{host}}/pt-br/3.9/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/" + +GET {{host}}/pt-br/3.10/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/" + +GET {{host}}/tr/3/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/" + +GET {{host}}/tr/3.5/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/" + +GET {{host}}/tr/3.6/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/" + +GET {{host}}/tr/3.7/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/" + +GET {{host}}/tr/3.8/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/" + +GET {{host}}/tr/3.9/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/" + +GET {{host}}/tr/3.10/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/" + +GET {{host}}/uk/3/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/" + +GET {{host}}/uk/3.5/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/" + +GET {{host}}/uk/3.6/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/" + +GET {{host}}/uk/3.7/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/" + +GET {{host}}/uk/3.8/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/" + +GET {{host}}/uk/3.9/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/" + +GET {{host}}/uk/3.10/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/" + +GET {{host}}/zh-cn/3/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/" + +GET {{host}}/zh-cn/3.5/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/" + +GET {{host}}/zh-cn/3.6/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/" + +GET {{host}}/zh-cn/3.7/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/" + +GET {{host}}/zh-cn/3.8/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/" + +GET {{host}}/zh-cn/3.9/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/" + +GET {{host}}/zh-cn/3.10/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/" + +GET {{host}}/zh-tw/3/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/" + +GET {{host}}/zh-tw/3.5/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/" + +GET {{host}}/zh-tw/3.6/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/" + +GET {{host}}/zh-tw/3.7/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/" + +GET {{host}}/zh-tw/3.8/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/" + +GET {{host}}/zh-tw/3.9/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/" + +GET {{host}}/zh-tw/3.10/howto/webservers.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/" diff --git a/tests/docs-redirects/specs/py2.7-htmlparser.hurl b/tests/docs-redirects/specs/py2.7-htmlparser.hurl new file mode 100644 index 00000000..ebcd77fa --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-htmlparser.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/htmlparser.html -> library/html.parser.html +GET {{host}}/3/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/html.parser.html" + +GET {{host}}/3.5/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/html.parser.html" + +GET {{host}}/3.6/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/html.parser.html" + +GET {{host}}/3.7/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/html.parser.html" + +GET {{host}}/3.8/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/html.parser.html" + +GET {{host}}/3.9/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/html.parser.html" + +GET {{host}}/3.10/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/html.parser.html" + +GET {{host}}/es/3/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/html.parser.html" + +GET {{host}}/es/3.5/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/html.parser.html" + +GET {{host}}/es/3.6/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/html.parser.html" + +GET {{host}}/es/3.7/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/html.parser.html" + +GET {{host}}/es/3.8/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/html.parser.html" + +GET {{host}}/es/3.9/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/html.parser.html" + +GET {{host}}/es/3.10/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/html.parser.html" + +GET {{host}}/fr/3/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/html.parser.html" + +GET {{host}}/fr/3.5/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/html.parser.html" + +GET {{host}}/fr/3.6/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/html.parser.html" + +GET {{host}}/fr/3.7/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/html.parser.html" + +GET {{host}}/fr/3.8/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/html.parser.html" + +GET {{host}}/fr/3.9/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/html.parser.html" + +GET {{host}}/fr/3.10/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/html.parser.html" + +GET {{host}}/id/3/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/html.parser.html" + +GET {{host}}/id/3.5/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/html.parser.html" + +GET {{host}}/id/3.6/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/html.parser.html" + +GET {{host}}/id/3.7/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/html.parser.html" + +GET {{host}}/id/3.8/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/html.parser.html" + +GET {{host}}/id/3.9/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/html.parser.html" + +GET {{host}}/id/3.10/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/html.parser.html" + +GET {{host}}/it/3/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/html.parser.html" + +GET {{host}}/it/3.5/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/html.parser.html" + +GET {{host}}/it/3.6/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/html.parser.html" + +GET {{host}}/it/3.7/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/html.parser.html" + +GET {{host}}/it/3.8/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/html.parser.html" + +GET {{host}}/it/3.9/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/html.parser.html" + +GET {{host}}/it/3.10/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/html.parser.html" + +GET {{host}}/ja/3/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/html.parser.html" + +GET {{host}}/ja/3.5/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/html.parser.html" + +GET {{host}}/ja/3.6/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/html.parser.html" + +GET {{host}}/ja/3.7/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/html.parser.html" + +GET {{host}}/ja/3.8/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/html.parser.html" + +GET {{host}}/ja/3.9/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/html.parser.html" + +GET {{host}}/ja/3.10/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/html.parser.html" + +GET {{host}}/ko/3/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/html.parser.html" + +GET {{host}}/ko/3.5/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/html.parser.html" + +GET {{host}}/ko/3.6/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/html.parser.html" + +GET {{host}}/ko/3.7/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/html.parser.html" + +GET {{host}}/ko/3.8/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/html.parser.html" + +GET {{host}}/ko/3.9/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/html.parser.html" + +GET {{host}}/ko/3.10/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/html.parser.html" + +GET {{host}}/pl/3/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/html.parser.html" + +GET {{host}}/pl/3.5/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/html.parser.html" + +GET {{host}}/pl/3.6/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/html.parser.html" + +GET {{host}}/pl/3.7/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/html.parser.html" + +GET {{host}}/pl/3.8/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/html.parser.html" + +GET {{host}}/pl/3.9/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/html.parser.html" + +GET {{host}}/pl/3.10/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/html.parser.html" + +GET {{host}}/pt-br/3/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/html.parser.html" + +GET {{host}}/pt-br/3.5/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/html.parser.html" + +GET {{host}}/pt-br/3.6/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/html.parser.html" + +GET {{host}}/pt-br/3.7/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/html.parser.html" + +GET {{host}}/pt-br/3.8/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/html.parser.html" + +GET {{host}}/pt-br/3.9/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/html.parser.html" + +GET {{host}}/pt-br/3.10/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/html.parser.html" + +GET {{host}}/tr/3/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/html.parser.html" + +GET {{host}}/tr/3.5/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/html.parser.html" + +GET {{host}}/tr/3.6/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/html.parser.html" + +GET {{host}}/tr/3.7/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/html.parser.html" + +GET {{host}}/tr/3.8/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/html.parser.html" + +GET {{host}}/tr/3.9/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/html.parser.html" + +GET {{host}}/tr/3.10/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/html.parser.html" + +GET {{host}}/uk/3/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/html.parser.html" + +GET {{host}}/uk/3.5/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/html.parser.html" + +GET {{host}}/uk/3.6/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/html.parser.html" + +GET {{host}}/uk/3.7/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/html.parser.html" + +GET {{host}}/uk/3.8/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/html.parser.html" + +GET {{host}}/uk/3.9/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/html.parser.html" + +GET {{host}}/uk/3.10/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/html.parser.html" + +GET {{host}}/zh-cn/3/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/html.parser.html" + +GET {{host}}/zh-cn/3.5/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/html.parser.html" + +GET {{host}}/zh-cn/3.6/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/html.parser.html" + +GET {{host}}/zh-cn/3.7/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/html.parser.html" + +GET {{host}}/zh-cn/3.8/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/html.parser.html" + +GET {{host}}/zh-cn/3.9/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/html.parser.html" + +GET {{host}}/zh-cn/3.10/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/html.parser.html" + +GET {{host}}/zh-tw/3/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/html.parser.html" + +GET {{host}}/zh-tw/3.5/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/html.parser.html" + +GET {{host}}/zh-tw/3.6/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/html.parser.html" + +GET {{host}}/zh-tw/3.7/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/html.parser.html" + +GET {{host}}/zh-tw/3.8/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/html.parser.html" + +GET {{host}}/zh-tw/3.9/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/html.parser.html" + +GET {{host}}/zh-tw/3.10/library/htmlparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/html.parser.html" diff --git a/tests/docs-redirects/specs/py2.7-httplib.hurl b/tests/docs-redirects/specs/py2.7-httplib.hurl new file mode 100644 index 00000000..c5aa43ad --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-httplib.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/httplib.html -> library/http.client.html +GET {{host}}/3/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/http.client.html" + +GET {{host}}/3.5/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/http.client.html" + +GET {{host}}/3.6/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/http.client.html" + +GET {{host}}/3.7/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/http.client.html" + +GET {{host}}/3.8/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/http.client.html" + +GET {{host}}/3.9/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/http.client.html" + +GET {{host}}/3.10/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/http.client.html" + +GET {{host}}/es/3/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/http.client.html" + +GET {{host}}/es/3.5/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/http.client.html" + +GET {{host}}/es/3.6/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/http.client.html" + +GET {{host}}/es/3.7/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/http.client.html" + +GET {{host}}/es/3.8/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/http.client.html" + +GET {{host}}/es/3.9/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/http.client.html" + +GET {{host}}/es/3.10/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/http.client.html" + +GET {{host}}/fr/3/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/http.client.html" + +GET {{host}}/fr/3.5/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/http.client.html" + +GET {{host}}/fr/3.6/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/http.client.html" + +GET {{host}}/fr/3.7/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/http.client.html" + +GET {{host}}/fr/3.8/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/http.client.html" + +GET {{host}}/fr/3.9/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/http.client.html" + +GET {{host}}/fr/3.10/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/http.client.html" + +GET {{host}}/id/3/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/http.client.html" + +GET {{host}}/id/3.5/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/http.client.html" + +GET {{host}}/id/3.6/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/http.client.html" + +GET {{host}}/id/3.7/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/http.client.html" + +GET {{host}}/id/3.8/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/http.client.html" + +GET {{host}}/id/3.9/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/http.client.html" + +GET {{host}}/id/3.10/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/http.client.html" + +GET {{host}}/it/3/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/http.client.html" + +GET {{host}}/it/3.5/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/http.client.html" + +GET {{host}}/it/3.6/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/http.client.html" + +GET {{host}}/it/3.7/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/http.client.html" + +GET {{host}}/it/3.8/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/http.client.html" + +GET {{host}}/it/3.9/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/http.client.html" + +GET {{host}}/it/3.10/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/http.client.html" + +GET {{host}}/ja/3/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/http.client.html" + +GET {{host}}/ja/3.5/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/http.client.html" + +GET {{host}}/ja/3.6/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/http.client.html" + +GET {{host}}/ja/3.7/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/http.client.html" + +GET {{host}}/ja/3.8/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/http.client.html" + +GET {{host}}/ja/3.9/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/http.client.html" + +GET {{host}}/ja/3.10/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/http.client.html" + +GET {{host}}/ko/3/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/http.client.html" + +GET {{host}}/ko/3.5/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/http.client.html" + +GET {{host}}/ko/3.6/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/http.client.html" + +GET {{host}}/ko/3.7/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/http.client.html" + +GET {{host}}/ko/3.8/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/http.client.html" + +GET {{host}}/ko/3.9/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/http.client.html" + +GET {{host}}/ko/3.10/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/http.client.html" + +GET {{host}}/pl/3/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/http.client.html" + +GET {{host}}/pl/3.5/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/http.client.html" + +GET {{host}}/pl/3.6/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/http.client.html" + +GET {{host}}/pl/3.7/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/http.client.html" + +GET {{host}}/pl/3.8/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/http.client.html" + +GET {{host}}/pl/3.9/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/http.client.html" + +GET {{host}}/pl/3.10/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/http.client.html" + +GET {{host}}/pt-br/3/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/http.client.html" + +GET {{host}}/pt-br/3.5/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/http.client.html" + +GET {{host}}/pt-br/3.6/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/http.client.html" + +GET {{host}}/pt-br/3.7/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/http.client.html" + +GET {{host}}/pt-br/3.8/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/http.client.html" + +GET {{host}}/pt-br/3.9/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/http.client.html" + +GET {{host}}/pt-br/3.10/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/http.client.html" + +GET {{host}}/tr/3/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/http.client.html" + +GET {{host}}/tr/3.5/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/http.client.html" + +GET {{host}}/tr/3.6/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/http.client.html" + +GET {{host}}/tr/3.7/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/http.client.html" + +GET {{host}}/tr/3.8/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/http.client.html" + +GET {{host}}/tr/3.9/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/http.client.html" + +GET {{host}}/tr/3.10/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/http.client.html" + +GET {{host}}/uk/3/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/http.client.html" + +GET {{host}}/uk/3.5/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/http.client.html" + +GET {{host}}/uk/3.6/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/http.client.html" + +GET {{host}}/uk/3.7/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/http.client.html" + +GET {{host}}/uk/3.8/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/http.client.html" + +GET {{host}}/uk/3.9/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/http.client.html" + +GET {{host}}/uk/3.10/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/http.client.html" + +GET {{host}}/zh-cn/3/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/http.client.html" + +GET {{host}}/zh-cn/3.5/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/http.client.html" + +GET {{host}}/zh-cn/3.6/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/http.client.html" + +GET {{host}}/zh-cn/3.7/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/http.client.html" + +GET {{host}}/zh-cn/3.8/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/http.client.html" + +GET {{host}}/zh-cn/3.9/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/http.client.html" + +GET {{host}}/zh-cn/3.10/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/http.client.html" + +GET {{host}}/zh-tw/3/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/http.client.html" + +GET {{host}}/zh-tw/3.5/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/http.client.html" + +GET {{host}}/zh-tw/3.6/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/http.client.html" + +GET {{host}}/zh-tw/3.7/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/http.client.html" + +GET {{host}}/zh-tw/3.8/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/http.client.html" + +GET {{host}}/zh-tw/3.9/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/http.client.html" + +GET {{host}}/zh-tw/3.10/library/httplib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/http.client.html" diff --git a/tests/docs-redirects/specs/py2.7-repr.hurl b/tests/docs-redirects/specs/py2.7-repr.hurl new file mode 100644 index 00000000..e290300c --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-repr.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/repr.html -> library/reprlib.html +GET {{host}}/3/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/reprlib.html" + +GET {{host}}/3.5/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/reprlib.html" + +GET {{host}}/3.6/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/reprlib.html" + +GET {{host}}/3.7/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/reprlib.html" + +GET {{host}}/3.8/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/reprlib.html" + +GET {{host}}/3.9/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/reprlib.html" + +GET {{host}}/3.10/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/reprlib.html" + +GET {{host}}/es/3/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/reprlib.html" + +GET {{host}}/es/3.5/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/reprlib.html" + +GET {{host}}/es/3.6/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/reprlib.html" + +GET {{host}}/es/3.7/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/reprlib.html" + +GET {{host}}/es/3.8/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/reprlib.html" + +GET {{host}}/es/3.9/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/reprlib.html" + +GET {{host}}/es/3.10/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/reprlib.html" + +GET {{host}}/fr/3/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/reprlib.html" + +GET {{host}}/fr/3.5/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/reprlib.html" + +GET {{host}}/fr/3.6/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/reprlib.html" + +GET {{host}}/fr/3.7/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/reprlib.html" + +GET {{host}}/fr/3.8/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/reprlib.html" + +GET {{host}}/fr/3.9/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/reprlib.html" + +GET {{host}}/fr/3.10/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/reprlib.html" + +GET {{host}}/id/3/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/reprlib.html" + +GET {{host}}/id/3.5/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/reprlib.html" + +GET {{host}}/id/3.6/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/reprlib.html" + +GET {{host}}/id/3.7/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/reprlib.html" + +GET {{host}}/id/3.8/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/reprlib.html" + +GET {{host}}/id/3.9/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/reprlib.html" + +GET {{host}}/id/3.10/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/reprlib.html" + +GET {{host}}/it/3/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/reprlib.html" + +GET {{host}}/it/3.5/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/reprlib.html" + +GET {{host}}/it/3.6/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/reprlib.html" + +GET {{host}}/it/3.7/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/reprlib.html" + +GET {{host}}/it/3.8/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/reprlib.html" + +GET {{host}}/it/3.9/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/reprlib.html" + +GET {{host}}/it/3.10/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/reprlib.html" + +GET {{host}}/ja/3/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/reprlib.html" + +GET {{host}}/ja/3.5/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/reprlib.html" + +GET {{host}}/ja/3.6/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/reprlib.html" + +GET {{host}}/ja/3.7/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/reprlib.html" + +GET {{host}}/ja/3.8/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/reprlib.html" + +GET {{host}}/ja/3.9/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/reprlib.html" + +GET {{host}}/ja/3.10/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/reprlib.html" + +GET {{host}}/ko/3/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/reprlib.html" + +GET {{host}}/ko/3.5/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/reprlib.html" + +GET {{host}}/ko/3.6/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/reprlib.html" + +GET {{host}}/ko/3.7/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/reprlib.html" + +GET {{host}}/ko/3.8/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/reprlib.html" + +GET {{host}}/ko/3.9/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/reprlib.html" + +GET {{host}}/ko/3.10/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/reprlib.html" + +GET {{host}}/pl/3/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/reprlib.html" + +GET {{host}}/pl/3.5/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/reprlib.html" + +GET {{host}}/pl/3.6/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/reprlib.html" + +GET {{host}}/pl/3.7/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/reprlib.html" + +GET {{host}}/pl/3.8/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/reprlib.html" + +GET {{host}}/pl/3.9/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/reprlib.html" + +GET {{host}}/pl/3.10/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/reprlib.html" + +GET {{host}}/pt-br/3/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/reprlib.html" + +GET {{host}}/pt-br/3.5/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/reprlib.html" + +GET {{host}}/pt-br/3.6/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/reprlib.html" + +GET {{host}}/pt-br/3.7/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/reprlib.html" + +GET {{host}}/pt-br/3.8/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/reprlib.html" + +GET {{host}}/pt-br/3.9/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/reprlib.html" + +GET {{host}}/pt-br/3.10/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/reprlib.html" + +GET {{host}}/tr/3/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/reprlib.html" + +GET {{host}}/tr/3.5/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/reprlib.html" + +GET {{host}}/tr/3.6/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/reprlib.html" + +GET {{host}}/tr/3.7/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/reprlib.html" + +GET {{host}}/tr/3.8/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/reprlib.html" + +GET {{host}}/tr/3.9/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/reprlib.html" + +GET {{host}}/tr/3.10/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/reprlib.html" + +GET {{host}}/uk/3/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/reprlib.html" + +GET {{host}}/uk/3.5/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/reprlib.html" + +GET {{host}}/uk/3.6/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/reprlib.html" + +GET {{host}}/uk/3.7/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/reprlib.html" + +GET {{host}}/uk/3.8/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/reprlib.html" + +GET {{host}}/uk/3.9/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/reprlib.html" + +GET {{host}}/uk/3.10/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/reprlib.html" + +GET {{host}}/zh-cn/3/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/reprlib.html" + +GET {{host}}/zh-cn/3.5/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/reprlib.html" + +GET {{host}}/zh-cn/3.6/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/reprlib.html" + +GET {{host}}/zh-cn/3.7/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/reprlib.html" + +GET {{host}}/zh-cn/3.8/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/reprlib.html" + +GET {{host}}/zh-cn/3.9/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/reprlib.html" + +GET {{host}}/zh-cn/3.10/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/reprlib.html" + +GET {{host}}/zh-tw/3/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/reprlib.html" + +GET {{host}}/zh-tw/3.5/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/reprlib.html" + +GET {{host}}/zh-tw/3.6/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/reprlib.html" + +GET {{host}}/zh-tw/3.7/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/reprlib.html" + +GET {{host}}/zh-tw/3.8/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/reprlib.html" + +GET {{host}}/zh-tw/3.9/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/reprlib.html" + +GET {{host}}/zh-tw/3.10/library/repr.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/reprlib.html" diff --git a/tests/docs-redirects/specs/py2.7-robotparser.hurl b/tests/docs-redirects/specs/py2.7-robotparser.hurl new file mode 100644 index 00000000..da330c3f --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-robotparser.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/robotparser.html -> library/urllib.robotparser.html +GET {{host}}/3/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/urllib.robotparser.html" + +GET {{host}}/3.5/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/urllib.robotparser.html" + +GET {{host}}/3.6/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/urllib.robotparser.html" + +GET {{host}}/3.7/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/urllib.robotparser.html" + +GET {{host}}/3.8/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/urllib.robotparser.html" + +GET {{host}}/3.9/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/urllib.robotparser.html" + +GET {{host}}/3.10/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/urllib.robotparser.html" + +GET {{host}}/es/3/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/urllib.robotparser.html" + +GET {{host}}/es/3.5/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/urllib.robotparser.html" + +GET {{host}}/es/3.6/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/urllib.robotparser.html" + +GET {{host}}/es/3.7/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/urllib.robotparser.html" + +GET {{host}}/es/3.8/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/urllib.robotparser.html" + +GET {{host}}/es/3.9/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/urllib.robotparser.html" + +GET {{host}}/es/3.10/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/urllib.robotparser.html" + +GET {{host}}/fr/3/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/urllib.robotparser.html" + +GET {{host}}/fr/3.5/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/urllib.robotparser.html" + +GET {{host}}/fr/3.6/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/urllib.robotparser.html" + +GET {{host}}/fr/3.7/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/urllib.robotparser.html" + +GET {{host}}/fr/3.8/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/urllib.robotparser.html" + +GET {{host}}/fr/3.9/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/urllib.robotparser.html" + +GET {{host}}/fr/3.10/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/urllib.robotparser.html" + +GET {{host}}/id/3/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/urllib.robotparser.html" + +GET {{host}}/id/3.5/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/urllib.robotparser.html" + +GET {{host}}/id/3.6/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/urllib.robotparser.html" + +GET {{host}}/id/3.7/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/urllib.robotparser.html" + +GET {{host}}/id/3.8/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/urllib.robotparser.html" + +GET {{host}}/id/3.9/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/urllib.robotparser.html" + +GET {{host}}/id/3.10/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/urllib.robotparser.html" + +GET {{host}}/it/3/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/urllib.robotparser.html" + +GET {{host}}/it/3.5/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/urllib.robotparser.html" + +GET {{host}}/it/3.6/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/urllib.robotparser.html" + +GET {{host}}/it/3.7/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/urllib.robotparser.html" + +GET {{host}}/it/3.8/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/urllib.robotparser.html" + +GET {{host}}/it/3.9/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/urllib.robotparser.html" + +GET {{host}}/it/3.10/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/urllib.robotparser.html" + +GET {{host}}/ja/3/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/urllib.robotparser.html" + +GET {{host}}/ja/3.5/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/urllib.robotparser.html" + +GET {{host}}/ja/3.6/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/urllib.robotparser.html" + +GET {{host}}/ja/3.7/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/urllib.robotparser.html" + +GET {{host}}/ja/3.8/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/urllib.robotparser.html" + +GET {{host}}/ja/3.9/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/urllib.robotparser.html" + +GET {{host}}/ja/3.10/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/urllib.robotparser.html" + +GET {{host}}/ko/3/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/urllib.robotparser.html" + +GET {{host}}/ko/3.5/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/urllib.robotparser.html" + +GET {{host}}/ko/3.6/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/urllib.robotparser.html" + +GET {{host}}/ko/3.7/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/urllib.robotparser.html" + +GET {{host}}/ko/3.8/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/urllib.robotparser.html" + +GET {{host}}/ko/3.9/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/urllib.robotparser.html" + +GET {{host}}/ko/3.10/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/urllib.robotparser.html" + +GET {{host}}/pl/3/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/urllib.robotparser.html" + +GET {{host}}/pl/3.5/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/urllib.robotparser.html" + +GET {{host}}/pl/3.6/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/urllib.robotparser.html" + +GET {{host}}/pl/3.7/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/urllib.robotparser.html" + +GET {{host}}/pl/3.8/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/urllib.robotparser.html" + +GET {{host}}/pl/3.9/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/urllib.robotparser.html" + +GET {{host}}/pl/3.10/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/urllib.robotparser.html" + +GET {{host}}/pt-br/3/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/urllib.robotparser.html" + +GET {{host}}/pt-br/3.5/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/urllib.robotparser.html" + +GET {{host}}/pt-br/3.6/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/urllib.robotparser.html" + +GET {{host}}/pt-br/3.7/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/urllib.robotparser.html" + +GET {{host}}/pt-br/3.8/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/urllib.robotparser.html" + +GET {{host}}/pt-br/3.9/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/urllib.robotparser.html" + +GET {{host}}/pt-br/3.10/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/urllib.robotparser.html" + +GET {{host}}/tr/3/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/urllib.robotparser.html" + +GET {{host}}/tr/3.5/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/urllib.robotparser.html" + +GET {{host}}/tr/3.6/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/urllib.robotparser.html" + +GET {{host}}/tr/3.7/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/urllib.robotparser.html" + +GET {{host}}/tr/3.8/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/urllib.robotparser.html" + +GET {{host}}/tr/3.9/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/urllib.robotparser.html" + +GET {{host}}/tr/3.10/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/urllib.robotparser.html" + +GET {{host}}/uk/3/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/urllib.robotparser.html" + +GET {{host}}/uk/3.5/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/urllib.robotparser.html" + +GET {{host}}/uk/3.6/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/urllib.robotparser.html" + +GET {{host}}/uk/3.7/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/urllib.robotparser.html" + +GET {{host}}/uk/3.8/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/urllib.robotparser.html" + +GET {{host}}/uk/3.9/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/urllib.robotparser.html" + +GET {{host}}/uk/3.10/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/urllib.robotparser.html" + +GET {{host}}/zh-cn/3/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/urllib.robotparser.html" + +GET {{host}}/zh-cn/3.5/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/urllib.robotparser.html" + +GET {{host}}/zh-cn/3.6/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/urllib.robotparser.html" + +GET {{host}}/zh-cn/3.7/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/urllib.robotparser.html" + +GET {{host}}/zh-cn/3.8/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/urllib.robotparser.html" + +GET {{host}}/zh-cn/3.9/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/urllib.robotparser.html" + +GET {{host}}/zh-cn/3.10/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/urllib.robotparser.html" + +GET {{host}}/zh-tw/3/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/urllib.robotparser.html" + +GET {{host}}/zh-tw/3.5/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/urllib.robotparser.html" + +GET {{host}}/zh-tw/3.6/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/urllib.robotparser.html" + +GET {{host}}/zh-tw/3.7/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/urllib.robotparser.html" + +GET {{host}}/zh-tw/3.8/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/urllib.robotparser.html" + +GET {{host}}/zh-tw/3.9/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/urllib.robotparser.html" + +GET {{host}}/zh-tw/3.10/library/robotparser.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/urllib.robotparser.html" diff --git a/tests/docs-redirects/specs/py2.7-scrolledtext.hurl b/tests/docs-redirects/specs/py2.7-scrolledtext.hurl new file mode 100644 index 00000000..9ed4aec2 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-scrolledtext.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/scrolledtext.html -> library/tkinter.scrolledtext.html +GET {{host}}/3/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/tkinter.scrolledtext.html" + +GET {{host}}/3.5/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/tkinter.scrolledtext.html" + +GET {{host}}/3.6/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/tkinter.scrolledtext.html" + +GET {{host}}/3.7/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/tkinter.scrolledtext.html" + +GET {{host}}/3.8/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/tkinter.scrolledtext.html" + +GET {{host}}/3.9/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/tkinter.scrolledtext.html" + +GET {{host}}/3.10/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/tkinter.scrolledtext.html" + +GET {{host}}/es/3/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/tkinter.scrolledtext.html" + +GET {{host}}/es/3.5/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/tkinter.scrolledtext.html" + +GET {{host}}/es/3.6/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/tkinter.scrolledtext.html" + +GET {{host}}/es/3.7/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/tkinter.scrolledtext.html" + +GET {{host}}/es/3.8/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/tkinter.scrolledtext.html" + +GET {{host}}/es/3.9/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/tkinter.scrolledtext.html" + +GET {{host}}/es/3.10/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/tkinter.scrolledtext.html" + +GET {{host}}/fr/3/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/tkinter.scrolledtext.html" + +GET {{host}}/fr/3.5/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/tkinter.scrolledtext.html" + +GET {{host}}/fr/3.6/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/tkinter.scrolledtext.html" + +GET {{host}}/fr/3.7/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/tkinter.scrolledtext.html" + +GET {{host}}/fr/3.8/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/tkinter.scrolledtext.html" + +GET {{host}}/fr/3.9/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/tkinter.scrolledtext.html" + +GET {{host}}/fr/3.10/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/tkinter.scrolledtext.html" + +GET {{host}}/id/3/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/tkinter.scrolledtext.html" + +GET {{host}}/id/3.5/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/tkinter.scrolledtext.html" + +GET {{host}}/id/3.6/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/tkinter.scrolledtext.html" + +GET {{host}}/id/3.7/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/tkinter.scrolledtext.html" + +GET {{host}}/id/3.8/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/tkinter.scrolledtext.html" + +GET {{host}}/id/3.9/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/tkinter.scrolledtext.html" + +GET {{host}}/id/3.10/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/tkinter.scrolledtext.html" + +GET {{host}}/it/3/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/tkinter.scrolledtext.html" + +GET {{host}}/it/3.5/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/tkinter.scrolledtext.html" + +GET {{host}}/it/3.6/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/tkinter.scrolledtext.html" + +GET {{host}}/it/3.7/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/tkinter.scrolledtext.html" + +GET {{host}}/it/3.8/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/tkinter.scrolledtext.html" + +GET {{host}}/it/3.9/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/tkinter.scrolledtext.html" + +GET {{host}}/it/3.10/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/tkinter.scrolledtext.html" + +GET {{host}}/ja/3/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/tkinter.scrolledtext.html" + +GET {{host}}/ja/3.5/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/tkinter.scrolledtext.html" + +GET {{host}}/ja/3.6/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/tkinter.scrolledtext.html" + +GET {{host}}/ja/3.7/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/tkinter.scrolledtext.html" + +GET {{host}}/ja/3.8/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/tkinter.scrolledtext.html" + +GET {{host}}/ja/3.9/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/tkinter.scrolledtext.html" + +GET {{host}}/ja/3.10/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/tkinter.scrolledtext.html" + +GET {{host}}/ko/3/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/tkinter.scrolledtext.html" + +GET {{host}}/ko/3.5/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/tkinter.scrolledtext.html" + +GET {{host}}/ko/3.6/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/tkinter.scrolledtext.html" + +GET {{host}}/ko/3.7/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/tkinter.scrolledtext.html" + +GET {{host}}/ko/3.8/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/tkinter.scrolledtext.html" + +GET {{host}}/ko/3.9/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/tkinter.scrolledtext.html" + +GET {{host}}/ko/3.10/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/tkinter.scrolledtext.html" + +GET {{host}}/pl/3/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/tkinter.scrolledtext.html" + +GET {{host}}/pl/3.5/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/tkinter.scrolledtext.html" + +GET {{host}}/pl/3.6/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/tkinter.scrolledtext.html" + +GET {{host}}/pl/3.7/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/tkinter.scrolledtext.html" + +GET {{host}}/pl/3.8/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/tkinter.scrolledtext.html" + +GET {{host}}/pl/3.9/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/tkinter.scrolledtext.html" + +GET {{host}}/pl/3.10/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/tkinter.scrolledtext.html" + +GET {{host}}/pt-br/3/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/tkinter.scrolledtext.html" + +GET {{host}}/pt-br/3.5/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/tkinter.scrolledtext.html" + +GET {{host}}/pt-br/3.6/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/tkinter.scrolledtext.html" + +GET {{host}}/pt-br/3.7/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/tkinter.scrolledtext.html" + +GET {{host}}/pt-br/3.8/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/tkinter.scrolledtext.html" + +GET {{host}}/pt-br/3.9/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/tkinter.scrolledtext.html" + +GET {{host}}/pt-br/3.10/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/tkinter.scrolledtext.html" + +GET {{host}}/tr/3/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/tkinter.scrolledtext.html" + +GET {{host}}/tr/3.5/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/tkinter.scrolledtext.html" + +GET {{host}}/tr/3.6/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/tkinter.scrolledtext.html" + +GET {{host}}/tr/3.7/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/tkinter.scrolledtext.html" + +GET {{host}}/tr/3.8/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/tkinter.scrolledtext.html" + +GET {{host}}/tr/3.9/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/tkinter.scrolledtext.html" + +GET {{host}}/tr/3.10/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/tkinter.scrolledtext.html" + +GET {{host}}/uk/3/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/tkinter.scrolledtext.html" + +GET {{host}}/uk/3.5/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/tkinter.scrolledtext.html" + +GET {{host}}/uk/3.6/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/tkinter.scrolledtext.html" + +GET {{host}}/uk/3.7/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/tkinter.scrolledtext.html" + +GET {{host}}/uk/3.8/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/tkinter.scrolledtext.html" + +GET {{host}}/uk/3.9/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/tkinter.scrolledtext.html" + +GET {{host}}/uk/3.10/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/tkinter.scrolledtext.html" + +GET {{host}}/zh-cn/3/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/tkinter.scrolledtext.html" + +GET {{host}}/zh-cn/3.5/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/tkinter.scrolledtext.html" + +GET {{host}}/zh-cn/3.6/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/tkinter.scrolledtext.html" + +GET {{host}}/zh-cn/3.7/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/tkinter.scrolledtext.html" + +GET {{host}}/zh-cn/3.8/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/tkinter.scrolledtext.html" + +GET {{host}}/zh-cn/3.9/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/tkinter.scrolledtext.html" + +GET {{host}}/zh-cn/3.10/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/tkinter.scrolledtext.html" + +GET {{host}}/zh-tw/3/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/tkinter.scrolledtext.html" + +GET {{host}}/zh-tw/3.5/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/tkinter.scrolledtext.html" + +GET {{host}}/zh-tw/3.6/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/tkinter.scrolledtext.html" + +GET {{host}}/zh-tw/3.7/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/tkinter.scrolledtext.html" + +GET {{host}}/zh-tw/3.8/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/tkinter.scrolledtext.html" + +GET {{host}}/zh-tw/3.9/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/tkinter.scrolledtext.html" + +GET {{host}}/zh-tw/3.10/library/scrolledtext.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/tkinter.scrolledtext.html" diff --git a/tests/docs-redirects/specs/py2.7-sets.hurl b/tests/docs-redirects/specs/py2.7-sets.hurl new file mode 100644 index 00000000..92972e8e --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-sets.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/sets.html -> library/stdtypes.html#set-types-set-frozenset +GET {{host}}/3/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/3.5/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/3.6/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/3.7/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/3.8/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/3.9/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/3.10/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/es/3/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/es/3.5/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/es/3.6/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/es/3.7/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/es/3.8/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/es/3.9/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/es/3.10/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/fr/3/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/fr/3.5/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/fr/3.6/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/fr/3.7/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/fr/3.8/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/fr/3.9/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/fr/3.10/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/id/3/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/id/3.5/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/id/3.6/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/id/3.7/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/id/3.8/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/id/3.9/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/id/3.10/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/it/3/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/it/3.5/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/it/3.6/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/it/3.7/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/it/3.8/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/it/3.9/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/it/3.10/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/ja/3/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/ja/3.5/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/ja/3.6/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/ja/3.7/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/ja/3.8/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/ja/3.9/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/ja/3.10/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/ko/3/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/ko/3.5/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/ko/3.6/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/ko/3.7/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/ko/3.8/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/ko/3.9/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/ko/3.10/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/pl/3/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/pl/3.5/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/pl/3.6/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/pl/3.7/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/pl/3.8/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/pl/3.9/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/pl/3.10/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/pt-br/3/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/pt-br/3.5/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/pt-br/3.6/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/pt-br/3.7/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/pt-br/3.8/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/pt-br/3.9/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/pt-br/3.10/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/tr/3/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/tr/3.5/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/tr/3.6/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/tr/3.7/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/tr/3.8/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/tr/3.9/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/tr/3.10/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/uk/3/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/uk/3.5/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/uk/3.6/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/uk/3.7/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/uk/3.8/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/uk/3.9/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/uk/3.10/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/zh-cn/3/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/zh-cn/3.5/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/zh-cn/3.6/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/zh-cn/3.7/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/zh-cn/3.8/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/zh-cn/3.9/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/zh-cn/3.10/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/zh-tw/3/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/zh-tw/3.5/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/zh-tw/3.6/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/zh-tw/3.7/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/zh-tw/3.8/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/zh-tw/3.9/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/stdtypes.html#set-types-set-frozenset" + +GET {{host}}/zh-tw/3.10/library/sets.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/stdtypes.html#set-types-set-frozenset" diff --git a/tests/docs-redirects/specs/py2.7-simplehttpserver.hurl b/tests/docs-redirects/specs/py2.7-simplehttpserver.hurl new file mode 100644 index 00000000..fef156cd --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-simplehttpserver.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/simplehttpserver.html -> library/http.server.html#http.server.SimpleHTTPRequestHandler +GET {{host}}/3/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/3.5/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/3.6/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/3.7/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/3.8/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/3.9/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/3.10/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/es/3/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/es/3.5/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/es/3.6/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/es/3.7/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/es/3.8/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/es/3.9/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/es/3.10/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/fr/3/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/fr/3.5/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/fr/3.6/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/fr/3.7/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/fr/3.8/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/fr/3.9/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/fr/3.10/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/id/3/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/id/3.5/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/id/3.6/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/id/3.7/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/id/3.8/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/id/3.9/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/id/3.10/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/it/3/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/it/3.5/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/it/3.6/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/it/3.7/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/it/3.8/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/it/3.9/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/it/3.10/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/ja/3/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/ja/3.5/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/ja/3.6/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/ja/3.7/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/ja/3.8/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/ja/3.9/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/ja/3.10/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/ko/3/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/ko/3.5/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/ko/3.6/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/ko/3.7/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/ko/3.8/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/ko/3.9/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/ko/3.10/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/pl/3/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/pl/3.5/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/pl/3.6/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/pl/3.7/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/pl/3.8/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/pl/3.9/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/pl/3.10/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/pt-br/3/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/pt-br/3.5/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/pt-br/3.6/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/pt-br/3.7/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/pt-br/3.8/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/pt-br/3.9/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/pt-br/3.10/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/tr/3/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/tr/3.5/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/tr/3.6/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/tr/3.7/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/tr/3.8/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/tr/3.9/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/tr/3.10/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/uk/3/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/uk/3.5/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/uk/3.6/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/uk/3.7/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/uk/3.8/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/uk/3.9/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/uk/3.10/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/zh-cn/3/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/zh-cn/3.5/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/zh-cn/3.6/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/zh-cn/3.7/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/zh-cn/3.8/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/zh-cn/3.9/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/zh-cn/3.10/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/zh-tw/3/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/zh-tw/3.5/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/zh-tw/3.6/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/zh-tw/3.7/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/zh-tw/3.8/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/zh-tw/3.9/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/http.server.html#http.server.SimpleHTTPRequestHandler" + +GET {{host}}/zh-tw/3.10/library/simplehttpserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/http.server.html#http.server.SimpleHTTPRequestHandler" diff --git a/tests/docs-redirects/specs/py2.7-simplexmlrpcserver.hurl b/tests/docs-redirects/specs/py2.7-simplexmlrpcserver.hurl new file mode 100644 index 00000000..a792d6fd --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-simplexmlrpcserver.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/simplexmlrpcserver.html -> library/xmlrpc.server.html +GET {{host}}/3/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/xmlrpc.server.html" + +GET {{host}}/3.5/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/xmlrpc.server.html" + +GET {{host}}/3.6/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/xmlrpc.server.html" + +GET {{host}}/3.7/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/xmlrpc.server.html" + +GET {{host}}/3.8/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/xmlrpc.server.html" + +GET {{host}}/3.9/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/xmlrpc.server.html" + +GET {{host}}/3.10/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/xmlrpc.server.html" + +GET {{host}}/es/3/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/xmlrpc.server.html" + +GET {{host}}/es/3.5/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/xmlrpc.server.html" + +GET {{host}}/es/3.6/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/xmlrpc.server.html" + +GET {{host}}/es/3.7/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/xmlrpc.server.html" + +GET {{host}}/es/3.8/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/xmlrpc.server.html" + +GET {{host}}/es/3.9/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/xmlrpc.server.html" + +GET {{host}}/es/3.10/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/xmlrpc.server.html" + +GET {{host}}/fr/3/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/xmlrpc.server.html" + +GET {{host}}/fr/3.5/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/xmlrpc.server.html" + +GET {{host}}/fr/3.6/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/xmlrpc.server.html" + +GET {{host}}/fr/3.7/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/xmlrpc.server.html" + +GET {{host}}/fr/3.8/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/xmlrpc.server.html" + +GET {{host}}/fr/3.9/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/xmlrpc.server.html" + +GET {{host}}/fr/3.10/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/xmlrpc.server.html" + +GET {{host}}/id/3/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/xmlrpc.server.html" + +GET {{host}}/id/3.5/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/xmlrpc.server.html" + +GET {{host}}/id/3.6/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/xmlrpc.server.html" + +GET {{host}}/id/3.7/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/xmlrpc.server.html" + +GET {{host}}/id/3.8/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/xmlrpc.server.html" + +GET {{host}}/id/3.9/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/xmlrpc.server.html" + +GET {{host}}/id/3.10/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/xmlrpc.server.html" + +GET {{host}}/it/3/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/xmlrpc.server.html" + +GET {{host}}/it/3.5/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/xmlrpc.server.html" + +GET {{host}}/it/3.6/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/xmlrpc.server.html" + +GET {{host}}/it/3.7/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/xmlrpc.server.html" + +GET {{host}}/it/3.8/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/xmlrpc.server.html" + +GET {{host}}/it/3.9/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/xmlrpc.server.html" + +GET {{host}}/it/3.10/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/xmlrpc.server.html" + +GET {{host}}/ja/3/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/xmlrpc.server.html" + +GET {{host}}/ja/3.5/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/xmlrpc.server.html" + +GET {{host}}/ja/3.6/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/xmlrpc.server.html" + +GET {{host}}/ja/3.7/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/xmlrpc.server.html" + +GET {{host}}/ja/3.8/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/xmlrpc.server.html" + +GET {{host}}/ja/3.9/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/xmlrpc.server.html" + +GET {{host}}/ja/3.10/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/xmlrpc.server.html" + +GET {{host}}/ko/3/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/xmlrpc.server.html" + +GET {{host}}/ko/3.5/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/xmlrpc.server.html" + +GET {{host}}/ko/3.6/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/xmlrpc.server.html" + +GET {{host}}/ko/3.7/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/xmlrpc.server.html" + +GET {{host}}/ko/3.8/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/xmlrpc.server.html" + +GET {{host}}/ko/3.9/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/xmlrpc.server.html" + +GET {{host}}/ko/3.10/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/xmlrpc.server.html" + +GET {{host}}/pl/3/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/xmlrpc.server.html" + +GET {{host}}/pl/3.5/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/xmlrpc.server.html" + +GET {{host}}/pl/3.6/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/xmlrpc.server.html" + +GET {{host}}/pl/3.7/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/xmlrpc.server.html" + +GET {{host}}/pl/3.8/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/xmlrpc.server.html" + +GET {{host}}/pl/3.9/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/xmlrpc.server.html" + +GET {{host}}/pl/3.10/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/xmlrpc.server.html" + +GET {{host}}/pt-br/3/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/xmlrpc.server.html" + +GET {{host}}/pt-br/3.5/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/xmlrpc.server.html" + +GET {{host}}/pt-br/3.6/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/xmlrpc.server.html" + +GET {{host}}/pt-br/3.7/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/xmlrpc.server.html" + +GET {{host}}/pt-br/3.8/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/xmlrpc.server.html" + +GET {{host}}/pt-br/3.9/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/xmlrpc.server.html" + +GET {{host}}/pt-br/3.10/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/xmlrpc.server.html" + +GET {{host}}/tr/3/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/xmlrpc.server.html" + +GET {{host}}/tr/3.5/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/xmlrpc.server.html" + +GET {{host}}/tr/3.6/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/xmlrpc.server.html" + +GET {{host}}/tr/3.7/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/xmlrpc.server.html" + +GET {{host}}/tr/3.8/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/xmlrpc.server.html" + +GET {{host}}/tr/3.9/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/xmlrpc.server.html" + +GET {{host}}/tr/3.10/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/xmlrpc.server.html" + +GET {{host}}/uk/3/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/xmlrpc.server.html" + +GET {{host}}/uk/3.5/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/xmlrpc.server.html" + +GET {{host}}/uk/3.6/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/xmlrpc.server.html" + +GET {{host}}/uk/3.7/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/xmlrpc.server.html" + +GET {{host}}/uk/3.8/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/xmlrpc.server.html" + +GET {{host}}/uk/3.9/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/xmlrpc.server.html" + +GET {{host}}/uk/3.10/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/xmlrpc.server.html" + +GET {{host}}/zh-cn/3/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/xmlrpc.server.html" + +GET {{host}}/zh-cn/3.5/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/xmlrpc.server.html" + +GET {{host}}/zh-cn/3.6/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/xmlrpc.server.html" + +GET {{host}}/zh-cn/3.7/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/xmlrpc.server.html" + +GET {{host}}/zh-cn/3.8/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/xmlrpc.server.html" + +GET {{host}}/zh-cn/3.9/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/xmlrpc.server.html" + +GET {{host}}/zh-cn/3.10/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/xmlrpc.server.html" + +GET {{host}}/zh-tw/3/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/xmlrpc.server.html" + +GET {{host}}/zh-tw/3.5/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/xmlrpc.server.html" + +GET {{host}}/zh-tw/3.6/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/xmlrpc.server.html" + +GET {{host}}/zh-tw/3.7/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/xmlrpc.server.html" + +GET {{host}}/zh-tw/3.8/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/xmlrpc.server.html" + +GET {{host}}/zh-tw/3.9/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/xmlrpc.server.html" + +GET {{host}}/zh-tw/3.10/library/simplexmlrpcserver.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/xmlrpc.server.html" diff --git a/tests/docs-redirects/specs/py2.7-stringio.hurl b/tests/docs-redirects/specs/py2.7-stringio.hurl new file mode 100644 index 00000000..f105cc6b --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-stringio.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/stringio.html -> library/io.html#io.StringIO +GET {{host}}/3/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/io.html#io.StringIO" + +GET {{host}}/3.5/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/io.html#io.StringIO" + +GET {{host}}/3.6/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/io.html#io.StringIO" + +GET {{host}}/3.7/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/io.html#io.StringIO" + +GET {{host}}/3.8/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/io.html#io.StringIO" + +GET {{host}}/3.9/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/io.html#io.StringIO" + +GET {{host}}/3.10/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/io.html#io.StringIO" + +GET {{host}}/es/3/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/io.html#io.StringIO" + +GET {{host}}/es/3.5/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/io.html#io.StringIO" + +GET {{host}}/es/3.6/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/io.html#io.StringIO" + +GET {{host}}/es/3.7/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/io.html#io.StringIO" + +GET {{host}}/es/3.8/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/io.html#io.StringIO" + +GET {{host}}/es/3.9/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/io.html#io.StringIO" + +GET {{host}}/es/3.10/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/io.html#io.StringIO" + +GET {{host}}/fr/3/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/io.html#io.StringIO" + +GET {{host}}/fr/3.5/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/io.html#io.StringIO" + +GET {{host}}/fr/3.6/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/io.html#io.StringIO" + +GET {{host}}/fr/3.7/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/io.html#io.StringIO" + +GET {{host}}/fr/3.8/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/io.html#io.StringIO" + +GET {{host}}/fr/3.9/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/io.html#io.StringIO" + +GET {{host}}/fr/3.10/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/io.html#io.StringIO" + +GET {{host}}/id/3/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/io.html#io.StringIO" + +GET {{host}}/id/3.5/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/io.html#io.StringIO" + +GET {{host}}/id/3.6/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/io.html#io.StringIO" + +GET {{host}}/id/3.7/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/io.html#io.StringIO" + +GET {{host}}/id/3.8/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/io.html#io.StringIO" + +GET {{host}}/id/3.9/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/io.html#io.StringIO" + +GET {{host}}/id/3.10/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/io.html#io.StringIO" + +GET {{host}}/it/3/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/io.html#io.StringIO" + +GET {{host}}/it/3.5/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/io.html#io.StringIO" + +GET {{host}}/it/3.6/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/io.html#io.StringIO" + +GET {{host}}/it/3.7/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/io.html#io.StringIO" + +GET {{host}}/it/3.8/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/io.html#io.StringIO" + +GET {{host}}/it/3.9/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/io.html#io.StringIO" + +GET {{host}}/it/3.10/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/io.html#io.StringIO" + +GET {{host}}/ja/3/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/io.html#io.StringIO" + +GET {{host}}/ja/3.5/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/io.html#io.StringIO" + +GET {{host}}/ja/3.6/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/io.html#io.StringIO" + +GET {{host}}/ja/3.7/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/io.html#io.StringIO" + +GET {{host}}/ja/3.8/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/io.html#io.StringIO" + +GET {{host}}/ja/3.9/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/io.html#io.StringIO" + +GET {{host}}/ja/3.10/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/io.html#io.StringIO" + +GET {{host}}/ko/3/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/io.html#io.StringIO" + +GET {{host}}/ko/3.5/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/io.html#io.StringIO" + +GET {{host}}/ko/3.6/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/io.html#io.StringIO" + +GET {{host}}/ko/3.7/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/io.html#io.StringIO" + +GET {{host}}/ko/3.8/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/io.html#io.StringIO" + +GET {{host}}/ko/3.9/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/io.html#io.StringIO" + +GET {{host}}/ko/3.10/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/io.html#io.StringIO" + +GET {{host}}/pl/3/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/io.html#io.StringIO" + +GET {{host}}/pl/3.5/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/io.html#io.StringIO" + +GET {{host}}/pl/3.6/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/io.html#io.StringIO" + +GET {{host}}/pl/3.7/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/io.html#io.StringIO" + +GET {{host}}/pl/3.8/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/io.html#io.StringIO" + +GET {{host}}/pl/3.9/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/io.html#io.StringIO" + +GET {{host}}/pl/3.10/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/io.html#io.StringIO" + +GET {{host}}/pt-br/3/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/io.html#io.StringIO" + +GET {{host}}/pt-br/3.5/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/io.html#io.StringIO" + +GET {{host}}/pt-br/3.6/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/io.html#io.StringIO" + +GET {{host}}/pt-br/3.7/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/io.html#io.StringIO" + +GET {{host}}/pt-br/3.8/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/io.html#io.StringIO" + +GET {{host}}/pt-br/3.9/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/io.html#io.StringIO" + +GET {{host}}/pt-br/3.10/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/io.html#io.StringIO" + +GET {{host}}/tr/3/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/io.html#io.StringIO" + +GET {{host}}/tr/3.5/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/io.html#io.StringIO" + +GET {{host}}/tr/3.6/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/io.html#io.StringIO" + +GET {{host}}/tr/3.7/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/io.html#io.StringIO" + +GET {{host}}/tr/3.8/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/io.html#io.StringIO" + +GET {{host}}/tr/3.9/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/io.html#io.StringIO" + +GET {{host}}/tr/3.10/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/io.html#io.StringIO" + +GET {{host}}/uk/3/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/io.html#io.StringIO" + +GET {{host}}/uk/3.5/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/io.html#io.StringIO" + +GET {{host}}/uk/3.6/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/io.html#io.StringIO" + +GET {{host}}/uk/3.7/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/io.html#io.StringIO" + +GET {{host}}/uk/3.8/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/io.html#io.StringIO" + +GET {{host}}/uk/3.9/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/io.html#io.StringIO" + +GET {{host}}/uk/3.10/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/io.html#io.StringIO" + +GET {{host}}/zh-cn/3/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/io.html#io.StringIO" + +GET {{host}}/zh-cn/3.5/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/io.html#io.StringIO" + +GET {{host}}/zh-cn/3.6/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/io.html#io.StringIO" + +GET {{host}}/zh-cn/3.7/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/io.html#io.StringIO" + +GET {{host}}/zh-cn/3.8/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/io.html#io.StringIO" + +GET {{host}}/zh-cn/3.9/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/io.html#io.StringIO" + +GET {{host}}/zh-cn/3.10/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/io.html#io.StringIO" + +GET {{host}}/zh-tw/3/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/io.html#io.StringIO" + +GET {{host}}/zh-tw/3.5/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/io.html#io.StringIO" + +GET {{host}}/zh-tw/3.6/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/io.html#io.StringIO" + +GET {{host}}/zh-tw/3.7/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/io.html#io.StringIO" + +GET {{host}}/zh-tw/3.8/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/io.html#io.StringIO" + +GET {{host}}/zh-tw/3.9/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/io.html#io.StringIO" + +GET {{host}}/zh-tw/3.10/library/stringio.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/io.html#io.StringIO" diff --git a/tests/docs-redirects/specs/py2.7-strings.hurl b/tests/docs-redirects/specs/py2.7-strings.hurl new file mode 100644 index 00000000..a1f11edf --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-strings.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/strings.html -> library/text.html +GET {{host}}/3/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/text.html" + +GET {{host}}/3.5/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/text.html" + +GET {{host}}/3.6/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/text.html" + +GET {{host}}/3.7/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/text.html" + +GET {{host}}/3.8/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/text.html" + +GET {{host}}/3.9/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/text.html" + +GET {{host}}/3.10/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/text.html" + +GET {{host}}/es/3/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/text.html" + +GET {{host}}/es/3.5/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/text.html" + +GET {{host}}/es/3.6/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/text.html" + +GET {{host}}/es/3.7/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/text.html" + +GET {{host}}/es/3.8/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/text.html" + +GET {{host}}/es/3.9/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/text.html" + +GET {{host}}/es/3.10/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/text.html" + +GET {{host}}/fr/3/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/text.html" + +GET {{host}}/fr/3.5/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/text.html" + +GET {{host}}/fr/3.6/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/text.html" + +GET {{host}}/fr/3.7/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/text.html" + +GET {{host}}/fr/3.8/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/text.html" + +GET {{host}}/fr/3.9/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/text.html" + +GET {{host}}/fr/3.10/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/text.html" + +GET {{host}}/id/3/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/text.html" + +GET {{host}}/id/3.5/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/text.html" + +GET {{host}}/id/3.6/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/text.html" + +GET {{host}}/id/3.7/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/text.html" + +GET {{host}}/id/3.8/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/text.html" + +GET {{host}}/id/3.9/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/text.html" + +GET {{host}}/id/3.10/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/text.html" + +GET {{host}}/it/3/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/text.html" + +GET {{host}}/it/3.5/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/text.html" + +GET {{host}}/it/3.6/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/text.html" + +GET {{host}}/it/3.7/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/text.html" + +GET {{host}}/it/3.8/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/text.html" + +GET {{host}}/it/3.9/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/text.html" + +GET {{host}}/it/3.10/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/text.html" + +GET {{host}}/ja/3/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/text.html" + +GET {{host}}/ja/3.5/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/text.html" + +GET {{host}}/ja/3.6/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/text.html" + +GET {{host}}/ja/3.7/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/text.html" + +GET {{host}}/ja/3.8/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/text.html" + +GET {{host}}/ja/3.9/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/text.html" + +GET {{host}}/ja/3.10/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/text.html" + +GET {{host}}/ko/3/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/text.html" + +GET {{host}}/ko/3.5/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/text.html" + +GET {{host}}/ko/3.6/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/text.html" + +GET {{host}}/ko/3.7/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/text.html" + +GET {{host}}/ko/3.8/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/text.html" + +GET {{host}}/ko/3.9/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/text.html" + +GET {{host}}/ko/3.10/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/text.html" + +GET {{host}}/pl/3/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/text.html" + +GET {{host}}/pl/3.5/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/text.html" + +GET {{host}}/pl/3.6/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/text.html" + +GET {{host}}/pl/3.7/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/text.html" + +GET {{host}}/pl/3.8/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/text.html" + +GET {{host}}/pl/3.9/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/text.html" + +GET {{host}}/pl/3.10/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/text.html" + +GET {{host}}/pt-br/3/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/text.html" + +GET {{host}}/pt-br/3.5/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/text.html" + +GET {{host}}/pt-br/3.6/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/text.html" + +GET {{host}}/pt-br/3.7/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/text.html" + +GET {{host}}/pt-br/3.8/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/text.html" + +GET {{host}}/pt-br/3.9/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/text.html" + +GET {{host}}/pt-br/3.10/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/text.html" + +GET {{host}}/tr/3/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/text.html" + +GET {{host}}/tr/3.5/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/text.html" + +GET {{host}}/tr/3.6/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/text.html" + +GET {{host}}/tr/3.7/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/text.html" + +GET {{host}}/tr/3.8/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/text.html" + +GET {{host}}/tr/3.9/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/text.html" + +GET {{host}}/tr/3.10/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/text.html" + +GET {{host}}/uk/3/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/text.html" + +GET {{host}}/uk/3.5/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/text.html" + +GET {{host}}/uk/3.6/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/text.html" + +GET {{host}}/uk/3.7/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/text.html" + +GET {{host}}/uk/3.8/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/text.html" + +GET {{host}}/uk/3.9/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/text.html" + +GET {{host}}/uk/3.10/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/text.html" + +GET {{host}}/zh-cn/3/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/text.html" + +GET {{host}}/zh-cn/3.5/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/text.html" + +GET {{host}}/zh-cn/3.6/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/text.html" + +GET {{host}}/zh-cn/3.7/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/text.html" + +GET {{host}}/zh-cn/3.8/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/text.html" + +GET {{host}}/zh-cn/3.9/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/text.html" + +GET {{host}}/zh-cn/3.10/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/text.html" + +GET {{host}}/zh-tw/3/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/text.html" + +GET {{host}}/zh-tw/3.5/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/text.html" + +GET {{host}}/zh-tw/3.6/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/text.html" + +GET {{host}}/zh-tw/3.7/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/text.html" + +GET {{host}}/zh-tw/3.8/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/text.html" + +GET {{host}}/zh-tw/3.9/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/text.html" + +GET {{host}}/zh-tw/3.10/library/strings.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/text.html" diff --git a/tests/docs-redirects/specs/py2.7-thread.hurl b/tests/docs-redirects/specs/py2.7-thread.hurl new file mode 100644 index 00000000..16d977cd --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-thread.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/thread.html -> library/_thread.html +GET {{host}}/3/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/_thread.html" + +GET {{host}}/3.5/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/_thread.html" + +GET {{host}}/3.6/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/_thread.html" + +GET {{host}}/3.7/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/_thread.html" + +GET {{host}}/3.8/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/_thread.html" + +GET {{host}}/3.9/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/_thread.html" + +GET {{host}}/3.10/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/_thread.html" + +GET {{host}}/es/3/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/_thread.html" + +GET {{host}}/es/3.5/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/_thread.html" + +GET {{host}}/es/3.6/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/_thread.html" + +GET {{host}}/es/3.7/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/_thread.html" + +GET {{host}}/es/3.8/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/_thread.html" + +GET {{host}}/es/3.9/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/_thread.html" + +GET {{host}}/es/3.10/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/_thread.html" + +GET {{host}}/fr/3/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/_thread.html" + +GET {{host}}/fr/3.5/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/_thread.html" + +GET {{host}}/fr/3.6/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/_thread.html" + +GET {{host}}/fr/3.7/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/_thread.html" + +GET {{host}}/fr/3.8/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/_thread.html" + +GET {{host}}/fr/3.9/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/_thread.html" + +GET {{host}}/fr/3.10/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/_thread.html" + +GET {{host}}/id/3/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/_thread.html" + +GET {{host}}/id/3.5/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/_thread.html" + +GET {{host}}/id/3.6/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/_thread.html" + +GET {{host}}/id/3.7/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/_thread.html" + +GET {{host}}/id/3.8/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/_thread.html" + +GET {{host}}/id/3.9/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/_thread.html" + +GET {{host}}/id/3.10/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/_thread.html" + +GET {{host}}/it/3/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/_thread.html" + +GET {{host}}/it/3.5/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/_thread.html" + +GET {{host}}/it/3.6/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/_thread.html" + +GET {{host}}/it/3.7/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/_thread.html" + +GET {{host}}/it/3.8/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/_thread.html" + +GET {{host}}/it/3.9/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/_thread.html" + +GET {{host}}/it/3.10/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/_thread.html" + +GET {{host}}/ja/3/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/_thread.html" + +GET {{host}}/ja/3.5/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/_thread.html" + +GET {{host}}/ja/3.6/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/_thread.html" + +GET {{host}}/ja/3.7/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/_thread.html" + +GET {{host}}/ja/3.8/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/_thread.html" + +GET {{host}}/ja/3.9/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/_thread.html" + +GET {{host}}/ja/3.10/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/_thread.html" + +GET {{host}}/ko/3/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/_thread.html" + +GET {{host}}/ko/3.5/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/_thread.html" + +GET {{host}}/ko/3.6/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/_thread.html" + +GET {{host}}/ko/3.7/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/_thread.html" + +GET {{host}}/ko/3.8/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/_thread.html" + +GET {{host}}/ko/3.9/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/_thread.html" + +GET {{host}}/ko/3.10/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/_thread.html" + +GET {{host}}/pl/3/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/_thread.html" + +GET {{host}}/pl/3.5/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/_thread.html" + +GET {{host}}/pl/3.6/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/_thread.html" + +GET {{host}}/pl/3.7/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/_thread.html" + +GET {{host}}/pl/3.8/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/_thread.html" + +GET {{host}}/pl/3.9/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/_thread.html" + +GET {{host}}/pl/3.10/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/_thread.html" + +GET {{host}}/pt-br/3/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/_thread.html" + +GET {{host}}/pt-br/3.5/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/_thread.html" + +GET {{host}}/pt-br/3.6/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/_thread.html" + +GET {{host}}/pt-br/3.7/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/_thread.html" + +GET {{host}}/pt-br/3.8/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/_thread.html" + +GET {{host}}/pt-br/3.9/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/_thread.html" + +GET {{host}}/pt-br/3.10/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/_thread.html" + +GET {{host}}/tr/3/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/_thread.html" + +GET {{host}}/tr/3.5/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/_thread.html" + +GET {{host}}/tr/3.6/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/_thread.html" + +GET {{host}}/tr/3.7/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/_thread.html" + +GET {{host}}/tr/3.8/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/_thread.html" + +GET {{host}}/tr/3.9/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/_thread.html" + +GET {{host}}/tr/3.10/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/_thread.html" + +GET {{host}}/uk/3/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/_thread.html" + +GET {{host}}/uk/3.5/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/_thread.html" + +GET {{host}}/uk/3.6/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/_thread.html" + +GET {{host}}/uk/3.7/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/_thread.html" + +GET {{host}}/uk/3.8/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/_thread.html" + +GET {{host}}/uk/3.9/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/_thread.html" + +GET {{host}}/uk/3.10/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/_thread.html" + +GET {{host}}/zh-cn/3/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/_thread.html" + +GET {{host}}/zh-cn/3.5/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/_thread.html" + +GET {{host}}/zh-cn/3.6/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/_thread.html" + +GET {{host}}/zh-cn/3.7/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/_thread.html" + +GET {{host}}/zh-cn/3.8/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/_thread.html" + +GET {{host}}/zh-cn/3.9/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/_thread.html" + +GET {{host}}/zh-cn/3.10/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/_thread.html" + +GET {{host}}/zh-tw/3/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/_thread.html" + +GET {{host}}/zh-tw/3.5/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/_thread.html" + +GET {{host}}/zh-tw/3.6/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/_thread.html" + +GET {{host}}/zh-tw/3.7/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/_thread.html" + +GET {{host}}/zh-tw/3.8/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/_thread.html" + +GET {{host}}/zh-tw/3.9/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/_thread.html" + +GET {{host}}/zh-tw/3.10/library/thread.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/_thread.html" diff --git a/tests/docs-redirects/specs/py2.7-tix.hurl b/tests/docs-redirects/specs/py2.7-tix.hurl new file mode 100644 index 00000000..2afb2338 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-tix.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/tix.html -> library/tkinter.tix.html +GET {{host}}/3/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/tkinter.tix.html" + +GET {{host}}/3.5/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/tkinter.tix.html" + +GET {{host}}/3.6/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/tkinter.tix.html" + +GET {{host}}/3.7/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/tkinter.tix.html" + +GET {{host}}/3.8/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/tkinter.tix.html" + +GET {{host}}/3.9/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/tkinter.tix.html" + +GET {{host}}/3.10/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/tkinter.tix.html" + +GET {{host}}/es/3/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/tkinter.tix.html" + +GET {{host}}/es/3.5/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/tkinter.tix.html" + +GET {{host}}/es/3.6/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/tkinter.tix.html" + +GET {{host}}/es/3.7/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/tkinter.tix.html" + +GET {{host}}/es/3.8/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/tkinter.tix.html" + +GET {{host}}/es/3.9/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/tkinter.tix.html" + +GET {{host}}/es/3.10/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/tkinter.tix.html" + +GET {{host}}/fr/3/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/tkinter.tix.html" + +GET {{host}}/fr/3.5/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/tkinter.tix.html" + +GET {{host}}/fr/3.6/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/tkinter.tix.html" + +GET {{host}}/fr/3.7/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/tkinter.tix.html" + +GET {{host}}/fr/3.8/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/tkinter.tix.html" + +GET {{host}}/fr/3.9/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/tkinter.tix.html" + +GET {{host}}/fr/3.10/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/tkinter.tix.html" + +GET {{host}}/id/3/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/tkinter.tix.html" + +GET {{host}}/id/3.5/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/tkinter.tix.html" + +GET {{host}}/id/3.6/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/tkinter.tix.html" + +GET {{host}}/id/3.7/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/tkinter.tix.html" + +GET {{host}}/id/3.8/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/tkinter.tix.html" + +GET {{host}}/id/3.9/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/tkinter.tix.html" + +GET {{host}}/id/3.10/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/tkinter.tix.html" + +GET {{host}}/it/3/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/tkinter.tix.html" + +GET {{host}}/it/3.5/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/tkinter.tix.html" + +GET {{host}}/it/3.6/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/tkinter.tix.html" + +GET {{host}}/it/3.7/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/tkinter.tix.html" + +GET {{host}}/it/3.8/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/tkinter.tix.html" + +GET {{host}}/it/3.9/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/tkinter.tix.html" + +GET {{host}}/it/3.10/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/tkinter.tix.html" + +GET {{host}}/ja/3/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/tkinter.tix.html" + +GET {{host}}/ja/3.5/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/tkinter.tix.html" + +GET {{host}}/ja/3.6/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/tkinter.tix.html" + +GET {{host}}/ja/3.7/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/tkinter.tix.html" + +GET {{host}}/ja/3.8/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/tkinter.tix.html" + +GET {{host}}/ja/3.9/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/tkinter.tix.html" + +GET {{host}}/ja/3.10/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/tkinter.tix.html" + +GET {{host}}/ko/3/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/tkinter.tix.html" + +GET {{host}}/ko/3.5/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/tkinter.tix.html" + +GET {{host}}/ko/3.6/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/tkinter.tix.html" + +GET {{host}}/ko/3.7/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/tkinter.tix.html" + +GET {{host}}/ko/3.8/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/tkinter.tix.html" + +GET {{host}}/ko/3.9/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/tkinter.tix.html" + +GET {{host}}/ko/3.10/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/tkinter.tix.html" + +GET {{host}}/pl/3/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/tkinter.tix.html" + +GET {{host}}/pl/3.5/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/tkinter.tix.html" + +GET {{host}}/pl/3.6/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/tkinter.tix.html" + +GET {{host}}/pl/3.7/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/tkinter.tix.html" + +GET {{host}}/pl/3.8/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/tkinter.tix.html" + +GET {{host}}/pl/3.9/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/tkinter.tix.html" + +GET {{host}}/pl/3.10/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/tkinter.tix.html" + +GET {{host}}/pt-br/3/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/tkinter.tix.html" + +GET {{host}}/pt-br/3.5/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/tkinter.tix.html" + +GET {{host}}/pt-br/3.6/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/tkinter.tix.html" + +GET {{host}}/pt-br/3.7/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/tkinter.tix.html" + +GET {{host}}/pt-br/3.8/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/tkinter.tix.html" + +GET {{host}}/pt-br/3.9/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/tkinter.tix.html" + +GET {{host}}/pt-br/3.10/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/tkinter.tix.html" + +GET {{host}}/tr/3/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/tkinter.tix.html" + +GET {{host}}/tr/3.5/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/tkinter.tix.html" + +GET {{host}}/tr/3.6/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/tkinter.tix.html" + +GET {{host}}/tr/3.7/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/tkinter.tix.html" + +GET {{host}}/tr/3.8/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/tkinter.tix.html" + +GET {{host}}/tr/3.9/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/tkinter.tix.html" + +GET {{host}}/tr/3.10/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/tkinter.tix.html" + +GET {{host}}/uk/3/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/tkinter.tix.html" + +GET {{host}}/uk/3.5/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/tkinter.tix.html" + +GET {{host}}/uk/3.6/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/tkinter.tix.html" + +GET {{host}}/uk/3.7/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/tkinter.tix.html" + +GET {{host}}/uk/3.8/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/tkinter.tix.html" + +GET {{host}}/uk/3.9/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/tkinter.tix.html" + +GET {{host}}/uk/3.10/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/tkinter.tix.html" + +GET {{host}}/zh-cn/3/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/tkinter.tix.html" + +GET {{host}}/zh-cn/3.5/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/tkinter.tix.html" + +GET {{host}}/zh-cn/3.6/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/tkinter.tix.html" + +GET {{host}}/zh-cn/3.7/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/tkinter.tix.html" + +GET {{host}}/zh-cn/3.8/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/tkinter.tix.html" + +GET {{host}}/zh-cn/3.9/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/tkinter.tix.html" + +GET {{host}}/zh-cn/3.10/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/tkinter.tix.html" + +GET {{host}}/zh-tw/3/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/tkinter.tix.html" + +GET {{host}}/zh-tw/3.5/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/tkinter.tix.html" + +GET {{host}}/zh-tw/3.6/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/tkinter.tix.html" + +GET {{host}}/zh-tw/3.7/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/tkinter.tix.html" + +GET {{host}}/zh-tw/3.8/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/tkinter.tix.html" + +GET {{host}}/zh-tw/3.9/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/tkinter.tix.html" + +GET {{host}}/zh-tw/3.10/library/tix.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/tkinter.tix.html" diff --git a/tests/docs-redirects/specs/py2.7-ttk.hurl b/tests/docs-redirects/specs/py2.7-ttk.hurl new file mode 100644 index 00000000..acd3c9fb --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-ttk.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/ttk.html -> library/tkinter.ttk.html +GET {{host}}/3/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/tkinter.ttk.html" + +GET {{host}}/3.5/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/tkinter.ttk.html" + +GET {{host}}/3.6/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/tkinter.ttk.html" + +GET {{host}}/3.7/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/tkinter.ttk.html" + +GET {{host}}/3.8/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/tkinter.ttk.html" + +GET {{host}}/3.9/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/tkinter.ttk.html" + +GET {{host}}/3.10/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/tkinter.ttk.html" + +GET {{host}}/es/3/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/tkinter.ttk.html" + +GET {{host}}/es/3.5/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/tkinter.ttk.html" + +GET {{host}}/es/3.6/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/tkinter.ttk.html" + +GET {{host}}/es/3.7/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/tkinter.ttk.html" + +GET {{host}}/es/3.8/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/tkinter.ttk.html" + +GET {{host}}/es/3.9/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/tkinter.ttk.html" + +GET {{host}}/es/3.10/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/tkinter.ttk.html" + +GET {{host}}/fr/3/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/tkinter.ttk.html" + +GET {{host}}/fr/3.5/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/tkinter.ttk.html" + +GET {{host}}/fr/3.6/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/tkinter.ttk.html" + +GET {{host}}/fr/3.7/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/tkinter.ttk.html" + +GET {{host}}/fr/3.8/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/tkinter.ttk.html" + +GET {{host}}/fr/3.9/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/tkinter.ttk.html" + +GET {{host}}/fr/3.10/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/tkinter.ttk.html" + +GET {{host}}/id/3/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/tkinter.ttk.html" + +GET {{host}}/id/3.5/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/tkinter.ttk.html" + +GET {{host}}/id/3.6/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/tkinter.ttk.html" + +GET {{host}}/id/3.7/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/tkinter.ttk.html" + +GET {{host}}/id/3.8/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/tkinter.ttk.html" + +GET {{host}}/id/3.9/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/tkinter.ttk.html" + +GET {{host}}/id/3.10/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/tkinter.ttk.html" + +GET {{host}}/it/3/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/tkinter.ttk.html" + +GET {{host}}/it/3.5/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/tkinter.ttk.html" + +GET {{host}}/it/3.6/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/tkinter.ttk.html" + +GET {{host}}/it/3.7/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/tkinter.ttk.html" + +GET {{host}}/it/3.8/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/tkinter.ttk.html" + +GET {{host}}/it/3.9/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/tkinter.ttk.html" + +GET {{host}}/it/3.10/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/tkinter.ttk.html" + +GET {{host}}/ja/3/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/tkinter.ttk.html" + +GET {{host}}/ja/3.5/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/tkinter.ttk.html" + +GET {{host}}/ja/3.6/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/tkinter.ttk.html" + +GET {{host}}/ja/3.7/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/tkinter.ttk.html" + +GET {{host}}/ja/3.8/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/tkinter.ttk.html" + +GET {{host}}/ja/3.9/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/tkinter.ttk.html" + +GET {{host}}/ja/3.10/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/tkinter.ttk.html" + +GET {{host}}/ko/3/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/tkinter.ttk.html" + +GET {{host}}/ko/3.5/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/tkinter.ttk.html" + +GET {{host}}/ko/3.6/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/tkinter.ttk.html" + +GET {{host}}/ko/3.7/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/tkinter.ttk.html" + +GET {{host}}/ko/3.8/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/tkinter.ttk.html" + +GET {{host}}/ko/3.9/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/tkinter.ttk.html" + +GET {{host}}/ko/3.10/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/tkinter.ttk.html" + +GET {{host}}/pl/3/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/tkinter.ttk.html" + +GET {{host}}/pl/3.5/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/tkinter.ttk.html" + +GET {{host}}/pl/3.6/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/tkinter.ttk.html" + +GET {{host}}/pl/3.7/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/tkinter.ttk.html" + +GET {{host}}/pl/3.8/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/tkinter.ttk.html" + +GET {{host}}/pl/3.9/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/tkinter.ttk.html" + +GET {{host}}/pl/3.10/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/tkinter.ttk.html" + +GET {{host}}/pt-br/3/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/tkinter.ttk.html" + +GET {{host}}/pt-br/3.5/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/tkinter.ttk.html" + +GET {{host}}/pt-br/3.6/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/tkinter.ttk.html" + +GET {{host}}/pt-br/3.7/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/tkinter.ttk.html" + +GET {{host}}/pt-br/3.8/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/tkinter.ttk.html" + +GET {{host}}/pt-br/3.9/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/tkinter.ttk.html" + +GET {{host}}/pt-br/3.10/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/tkinter.ttk.html" + +GET {{host}}/tr/3/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/tkinter.ttk.html" + +GET {{host}}/tr/3.5/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/tkinter.ttk.html" + +GET {{host}}/tr/3.6/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/tkinter.ttk.html" + +GET {{host}}/tr/3.7/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/tkinter.ttk.html" + +GET {{host}}/tr/3.8/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/tkinter.ttk.html" + +GET {{host}}/tr/3.9/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/tkinter.ttk.html" + +GET {{host}}/tr/3.10/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/tkinter.ttk.html" + +GET {{host}}/uk/3/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/tkinter.ttk.html" + +GET {{host}}/uk/3.5/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/tkinter.ttk.html" + +GET {{host}}/uk/3.6/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/tkinter.ttk.html" + +GET {{host}}/uk/3.7/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/tkinter.ttk.html" + +GET {{host}}/uk/3.8/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/tkinter.ttk.html" + +GET {{host}}/uk/3.9/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/tkinter.ttk.html" + +GET {{host}}/uk/3.10/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/tkinter.ttk.html" + +GET {{host}}/zh-cn/3/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/tkinter.ttk.html" + +GET {{host}}/zh-cn/3.5/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/tkinter.ttk.html" + +GET {{host}}/zh-cn/3.6/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/tkinter.ttk.html" + +GET {{host}}/zh-cn/3.7/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/tkinter.ttk.html" + +GET {{host}}/zh-cn/3.8/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/tkinter.ttk.html" + +GET {{host}}/zh-cn/3.9/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/tkinter.ttk.html" + +GET {{host}}/zh-cn/3.10/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/tkinter.ttk.html" + +GET {{host}}/zh-tw/3/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/tkinter.ttk.html" + +GET {{host}}/zh-tw/3.5/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/tkinter.ttk.html" + +GET {{host}}/zh-tw/3.6/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/tkinter.ttk.html" + +GET {{host}}/zh-tw/3.7/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/tkinter.ttk.html" + +GET {{host}}/zh-tw/3.8/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/tkinter.ttk.html" + +GET {{host}}/zh-tw/3.9/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/tkinter.ttk.html" + +GET {{host}}/zh-tw/3.10/library/ttk.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/tkinter.ttk.html" diff --git a/tests/docs-redirects/specs/py2.7-urllib2.hurl b/tests/docs-redirects/specs/py2.7-urllib2.hurl new file mode 100644 index 00000000..cc655f57 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-urllib2.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/urllib2.html -> library/urllib.request.html +GET {{host}}/3/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/urllib.request.html" + +GET {{host}}/3.5/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/urllib.request.html" + +GET {{host}}/3.6/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/urllib.request.html" + +GET {{host}}/3.7/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/urllib.request.html" + +GET {{host}}/3.8/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/urllib.request.html" + +GET {{host}}/3.9/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/urllib.request.html" + +GET {{host}}/3.10/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/urllib.request.html" + +GET {{host}}/es/3/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/urllib.request.html" + +GET {{host}}/es/3.5/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/urllib.request.html" + +GET {{host}}/es/3.6/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/urllib.request.html" + +GET {{host}}/es/3.7/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/urllib.request.html" + +GET {{host}}/es/3.8/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/urllib.request.html" + +GET {{host}}/es/3.9/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/urllib.request.html" + +GET {{host}}/es/3.10/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/urllib.request.html" + +GET {{host}}/fr/3/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/urllib.request.html" + +GET {{host}}/fr/3.5/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/urllib.request.html" + +GET {{host}}/fr/3.6/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/urllib.request.html" + +GET {{host}}/fr/3.7/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/urllib.request.html" + +GET {{host}}/fr/3.8/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/urllib.request.html" + +GET {{host}}/fr/3.9/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/urllib.request.html" + +GET {{host}}/fr/3.10/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/urllib.request.html" + +GET {{host}}/id/3/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/urllib.request.html" + +GET {{host}}/id/3.5/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/urllib.request.html" + +GET {{host}}/id/3.6/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/urllib.request.html" + +GET {{host}}/id/3.7/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/urllib.request.html" + +GET {{host}}/id/3.8/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/urllib.request.html" + +GET {{host}}/id/3.9/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/urllib.request.html" + +GET {{host}}/id/3.10/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/urllib.request.html" + +GET {{host}}/it/3/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/urllib.request.html" + +GET {{host}}/it/3.5/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/urllib.request.html" + +GET {{host}}/it/3.6/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/urllib.request.html" + +GET {{host}}/it/3.7/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/urllib.request.html" + +GET {{host}}/it/3.8/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/urllib.request.html" + +GET {{host}}/it/3.9/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/urllib.request.html" + +GET {{host}}/it/3.10/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/urllib.request.html" + +GET {{host}}/ja/3/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/urllib.request.html" + +GET {{host}}/ja/3.5/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/urllib.request.html" + +GET {{host}}/ja/3.6/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/urllib.request.html" + +GET {{host}}/ja/3.7/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/urllib.request.html" + +GET {{host}}/ja/3.8/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/urllib.request.html" + +GET {{host}}/ja/3.9/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/urllib.request.html" + +GET {{host}}/ja/3.10/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/urllib.request.html" + +GET {{host}}/ko/3/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/urllib.request.html" + +GET {{host}}/ko/3.5/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/urllib.request.html" + +GET {{host}}/ko/3.6/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/urllib.request.html" + +GET {{host}}/ko/3.7/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/urllib.request.html" + +GET {{host}}/ko/3.8/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/urllib.request.html" + +GET {{host}}/ko/3.9/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/urllib.request.html" + +GET {{host}}/ko/3.10/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/urllib.request.html" + +GET {{host}}/pl/3/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/urllib.request.html" + +GET {{host}}/pl/3.5/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/urllib.request.html" + +GET {{host}}/pl/3.6/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/urllib.request.html" + +GET {{host}}/pl/3.7/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/urllib.request.html" + +GET {{host}}/pl/3.8/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/urllib.request.html" + +GET {{host}}/pl/3.9/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/urllib.request.html" + +GET {{host}}/pl/3.10/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/urllib.request.html" + +GET {{host}}/pt-br/3/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/urllib.request.html" + +GET {{host}}/pt-br/3.5/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/urllib.request.html" + +GET {{host}}/pt-br/3.6/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/urllib.request.html" + +GET {{host}}/pt-br/3.7/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/urllib.request.html" + +GET {{host}}/pt-br/3.8/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/urllib.request.html" + +GET {{host}}/pt-br/3.9/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/urllib.request.html" + +GET {{host}}/pt-br/3.10/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/urllib.request.html" + +GET {{host}}/tr/3/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/urllib.request.html" + +GET {{host}}/tr/3.5/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/urllib.request.html" + +GET {{host}}/tr/3.6/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/urllib.request.html" + +GET {{host}}/tr/3.7/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/urllib.request.html" + +GET {{host}}/tr/3.8/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/urllib.request.html" + +GET {{host}}/tr/3.9/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/urllib.request.html" + +GET {{host}}/tr/3.10/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/urllib.request.html" + +GET {{host}}/uk/3/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/urllib.request.html" + +GET {{host}}/uk/3.5/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/urllib.request.html" + +GET {{host}}/uk/3.6/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/urllib.request.html" + +GET {{host}}/uk/3.7/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/urllib.request.html" + +GET {{host}}/uk/3.8/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/urllib.request.html" + +GET {{host}}/uk/3.9/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/urllib.request.html" + +GET {{host}}/uk/3.10/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/urllib.request.html" + +GET {{host}}/zh-cn/3/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/urllib.request.html" + +GET {{host}}/zh-cn/3.5/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/urllib.request.html" + +GET {{host}}/zh-cn/3.6/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/urllib.request.html" + +GET {{host}}/zh-cn/3.7/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/urllib.request.html" + +GET {{host}}/zh-cn/3.8/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/urllib.request.html" + +GET {{host}}/zh-cn/3.9/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/urllib.request.html" + +GET {{host}}/zh-cn/3.10/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/urllib.request.html" + +GET {{host}}/zh-tw/3/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/urllib.request.html" + +GET {{host}}/zh-tw/3.5/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/urllib.request.html" + +GET {{host}}/zh-tw/3.6/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/urllib.request.html" + +GET {{host}}/zh-tw/3.7/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/urllib.request.html" + +GET {{host}}/zh-tw/3.8/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/urllib.request.html" + +GET {{host}}/zh-tw/3.9/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/urllib.request.html" + +GET {{host}}/zh-tw/3.10/library/urllib2.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/urllib.request.html" diff --git a/tests/docs-redirects/specs/py2.7-urlparse.hurl b/tests/docs-redirects/specs/py2.7-urlparse.hurl new file mode 100644 index 00000000..55933c88 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-urlparse.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/urlparse.html -> library/urllib.parse.html +GET {{host}}/3/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/urllib.parse.html" + +GET {{host}}/3.5/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/urllib.parse.html" + +GET {{host}}/3.6/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/urllib.parse.html" + +GET {{host}}/3.7/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/urllib.parse.html" + +GET {{host}}/3.8/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/urllib.parse.html" + +GET {{host}}/3.9/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/urllib.parse.html" + +GET {{host}}/3.10/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/urllib.parse.html" + +GET {{host}}/es/3/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/urllib.parse.html" + +GET {{host}}/es/3.5/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/urllib.parse.html" + +GET {{host}}/es/3.6/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/urllib.parse.html" + +GET {{host}}/es/3.7/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/urllib.parse.html" + +GET {{host}}/es/3.8/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/urllib.parse.html" + +GET {{host}}/es/3.9/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/urllib.parse.html" + +GET {{host}}/es/3.10/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/urllib.parse.html" + +GET {{host}}/fr/3/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/urllib.parse.html" + +GET {{host}}/fr/3.5/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/urllib.parse.html" + +GET {{host}}/fr/3.6/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/urllib.parse.html" + +GET {{host}}/fr/3.7/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/urllib.parse.html" + +GET {{host}}/fr/3.8/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/urllib.parse.html" + +GET {{host}}/fr/3.9/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/urllib.parse.html" + +GET {{host}}/fr/3.10/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/urllib.parse.html" + +GET {{host}}/id/3/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/urllib.parse.html" + +GET {{host}}/id/3.5/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/urllib.parse.html" + +GET {{host}}/id/3.6/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/urllib.parse.html" + +GET {{host}}/id/3.7/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/urllib.parse.html" + +GET {{host}}/id/3.8/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/urllib.parse.html" + +GET {{host}}/id/3.9/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/urllib.parse.html" + +GET {{host}}/id/3.10/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/urllib.parse.html" + +GET {{host}}/it/3/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/urllib.parse.html" + +GET {{host}}/it/3.5/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/urllib.parse.html" + +GET {{host}}/it/3.6/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/urllib.parse.html" + +GET {{host}}/it/3.7/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/urllib.parse.html" + +GET {{host}}/it/3.8/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/urllib.parse.html" + +GET {{host}}/it/3.9/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/urllib.parse.html" + +GET {{host}}/it/3.10/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/urllib.parse.html" + +GET {{host}}/ja/3/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/urllib.parse.html" + +GET {{host}}/ja/3.5/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/urllib.parse.html" + +GET {{host}}/ja/3.6/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/urllib.parse.html" + +GET {{host}}/ja/3.7/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/urllib.parse.html" + +GET {{host}}/ja/3.8/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/urllib.parse.html" + +GET {{host}}/ja/3.9/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/urllib.parse.html" + +GET {{host}}/ja/3.10/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/urllib.parse.html" + +GET {{host}}/ko/3/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/urllib.parse.html" + +GET {{host}}/ko/3.5/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/urllib.parse.html" + +GET {{host}}/ko/3.6/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/urllib.parse.html" + +GET {{host}}/ko/3.7/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/urllib.parse.html" + +GET {{host}}/ko/3.8/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/urllib.parse.html" + +GET {{host}}/ko/3.9/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/urllib.parse.html" + +GET {{host}}/ko/3.10/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/urllib.parse.html" + +GET {{host}}/pl/3/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/urllib.parse.html" + +GET {{host}}/pl/3.5/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/urllib.parse.html" + +GET {{host}}/pl/3.6/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/urllib.parse.html" + +GET {{host}}/pl/3.7/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/urllib.parse.html" + +GET {{host}}/pl/3.8/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/urllib.parse.html" + +GET {{host}}/pl/3.9/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/urllib.parse.html" + +GET {{host}}/pl/3.10/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/urllib.parse.html" + +GET {{host}}/pt-br/3/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/urllib.parse.html" + +GET {{host}}/pt-br/3.5/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/urllib.parse.html" + +GET {{host}}/pt-br/3.6/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/urllib.parse.html" + +GET {{host}}/pt-br/3.7/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/urllib.parse.html" + +GET {{host}}/pt-br/3.8/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/urllib.parse.html" + +GET {{host}}/pt-br/3.9/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/urllib.parse.html" + +GET {{host}}/pt-br/3.10/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/urllib.parse.html" + +GET {{host}}/tr/3/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/urllib.parse.html" + +GET {{host}}/tr/3.5/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/urllib.parse.html" + +GET {{host}}/tr/3.6/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/urllib.parse.html" + +GET {{host}}/tr/3.7/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/urllib.parse.html" + +GET {{host}}/tr/3.8/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/urllib.parse.html" + +GET {{host}}/tr/3.9/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/urllib.parse.html" + +GET {{host}}/tr/3.10/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/urllib.parse.html" + +GET {{host}}/uk/3/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/urllib.parse.html" + +GET {{host}}/uk/3.5/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/urllib.parse.html" + +GET {{host}}/uk/3.6/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/urllib.parse.html" + +GET {{host}}/uk/3.7/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/urllib.parse.html" + +GET {{host}}/uk/3.8/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/urllib.parse.html" + +GET {{host}}/uk/3.9/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/urllib.parse.html" + +GET {{host}}/uk/3.10/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/urllib.parse.html" + +GET {{host}}/zh-cn/3/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/urllib.parse.html" + +GET {{host}}/zh-cn/3.5/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/urllib.parse.html" + +GET {{host}}/zh-cn/3.6/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/urllib.parse.html" + +GET {{host}}/zh-cn/3.7/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/urllib.parse.html" + +GET {{host}}/zh-cn/3.8/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/urllib.parse.html" + +GET {{host}}/zh-cn/3.9/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/urllib.parse.html" + +GET {{host}}/zh-cn/3.10/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/urllib.parse.html" + +GET {{host}}/zh-tw/3/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/urllib.parse.html" + +GET {{host}}/zh-tw/3.5/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/urllib.parse.html" + +GET {{host}}/zh-tw/3.6/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/urllib.parse.html" + +GET {{host}}/zh-tw/3.7/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/urllib.parse.html" + +GET {{host}}/zh-tw/3.8/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/urllib.parse.html" + +GET {{host}}/zh-tw/3.9/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/urllib.parse.html" + +GET {{host}}/zh-tw/3.10/library/urlparse.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/urllib.parse.html" diff --git a/tests/docs-redirects/specs/py2.7-userdict.hurl b/tests/docs-redirects/specs/py2.7-userdict.hurl new file mode 100644 index 00000000..a68a2a10 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-userdict.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/userdict.html -> library/collections.html#userdict-objects +GET {{host}}/3/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/collections.html#userdict-objects" + +GET {{host}}/3.5/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/collections.html#userdict-objects" + +GET {{host}}/3.6/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/collections.html#userdict-objects" + +GET {{host}}/3.7/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/collections.html#userdict-objects" + +GET {{host}}/3.8/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/collections.html#userdict-objects" + +GET {{host}}/3.9/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/collections.html#userdict-objects" + +GET {{host}}/3.10/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/collections.html#userdict-objects" + +GET {{host}}/es/3/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/collections.html#userdict-objects" + +GET {{host}}/es/3.5/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/collections.html#userdict-objects" + +GET {{host}}/es/3.6/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/collections.html#userdict-objects" + +GET {{host}}/es/3.7/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/collections.html#userdict-objects" + +GET {{host}}/es/3.8/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/collections.html#userdict-objects" + +GET {{host}}/es/3.9/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/collections.html#userdict-objects" + +GET {{host}}/es/3.10/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/collections.html#userdict-objects" + +GET {{host}}/fr/3/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/collections.html#userdict-objects" + +GET {{host}}/fr/3.5/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/collections.html#userdict-objects" + +GET {{host}}/fr/3.6/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/collections.html#userdict-objects" + +GET {{host}}/fr/3.7/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/collections.html#userdict-objects" + +GET {{host}}/fr/3.8/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/collections.html#userdict-objects" + +GET {{host}}/fr/3.9/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/collections.html#userdict-objects" + +GET {{host}}/fr/3.10/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/collections.html#userdict-objects" + +GET {{host}}/id/3/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/collections.html#userdict-objects" + +GET {{host}}/id/3.5/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/collections.html#userdict-objects" + +GET {{host}}/id/3.6/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/collections.html#userdict-objects" + +GET {{host}}/id/3.7/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/collections.html#userdict-objects" + +GET {{host}}/id/3.8/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/collections.html#userdict-objects" + +GET {{host}}/id/3.9/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/collections.html#userdict-objects" + +GET {{host}}/id/3.10/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/collections.html#userdict-objects" + +GET {{host}}/it/3/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/collections.html#userdict-objects" + +GET {{host}}/it/3.5/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/collections.html#userdict-objects" + +GET {{host}}/it/3.6/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/collections.html#userdict-objects" + +GET {{host}}/it/3.7/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/collections.html#userdict-objects" + +GET {{host}}/it/3.8/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/collections.html#userdict-objects" + +GET {{host}}/it/3.9/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/collections.html#userdict-objects" + +GET {{host}}/it/3.10/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/collections.html#userdict-objects" + +GET {{host}}/ja/3/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/collections.html#userdict-objects" + +GET {{host}}/ja/3.5/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/collections.html#userdict-objects" + +GET {{host}}/ja/3.6/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/collections.html#userdict-objects" + +GET {{host}}/ja/3.7/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/collections.html#userdict-objects" + +GET {{host}}/ja/3.8/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/collections.html#userdict-objects" + +GET {{host}}/ja/3.9/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/collections.html#userdict-objects" + +GET {{host}}/ja/3.10/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/collections.html#userdict-objects" + +GET {{host}}/ko/3/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/collections.html#userdict-objects" + +GET {{host}}/ko/3.5/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/collections.html#userdict-objects" + +GET {{host}}/ko/3.6/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/collections.html#userdict-objects" + +GET {{host}}/ko/3.7/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/collections.html#userdict-objects" + +GET {{host}}/ko/3.8/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/collections.html#userdict-objects" + +GET {{host}}/ko/3.9/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/collections.html#userdict-objects" + +GET {{host}}/ko/3.10/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/collections.html#userdict-objects" + +GET {{host}}/pl/3/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/collections.html#userdict-objects" + +GET {{host}}/pl/3.5/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/collections.html#userdict-objects" + +GET {{host}}/pl/3.6/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/collections.html#userdict-objects" + +GET {{host}}/pl/3.7/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/collections.html#userdict-objects" + +GET {{host}}/pl/3.8/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/collections.html#userdict-objects" + +GET {{host}}/pl/3.9/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/collections.html#userdict-objects" + +GET {{host}}/pl/3.10/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/collections.html#userdict-objects" + +GET {{host}}/pt-br/3/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/collections.html#userdict-objects" + +GET {{host}}/pt-br/3.5/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/collections.html#userdict-objects" + +GET {{host}}/pt-br/3.6/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/collections.html#userdict-objects" + +GET {{host}}/pt-br/3.7/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/collections.html#userdict-objects" + +GET {{host}}/pt-br/3.8/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/collections.html#userdict-objects" + +GET {{host}}/pt-br/3.9/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/collections.html#userdict-objects" + +GET {{host}}/pt-br/3.10/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/collections.html#userdict-objects" + +GET {{host}}/tr/3/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/collections.html#userdict-objects" + +GET {{host}}/tr/3.5/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/collections.html#userdict-objects" + +GET {{host}}/tr/3.6/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/collections.html#userdict-objects" + +GET {{host}}/tr/3.7/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/collections.html#userdict-objects" + +GET {{host}}/tr/3.8/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/collections.html#userdict-objects" + +GET {{host}}/tr/3.9/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/collections.html#userdict-objects" + +GET {{host}}/tr/3.10/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/collections.html#userdict-objects" + +GET {{host}}/uk/3/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/collections.html#userdict-objects" + +GET {{host}}/uk/3.5/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/collections.html#userdict-objects" + +GET {{host}}/uk/3.6/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/collections.html#userdict-objects" + +GET {{host}}/uk/3.7/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/collections.html#userdict-objects" + +GET {{host}}/uk/3.8/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/collections.html#userdict-objects" + +GET {{host}}/uk/3.9/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/collections.html#userdict-objects" + +GET {{host}}/uk/3.10/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/collections.html#userdict-objects" + +GET {{host}}/zh-cn/3/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/collections.html#userdict-objects" + +GET {{host}}/zh-cn/3.5/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/collections.html#userdict-objects" + +GET {{host}}/zh-cn/3.6/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/collections.html#userdict-objects" + +GET {{host}}/zh-cn/3.7/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/collections.html#userdict-objects" + +GET {{host}}/zh-cn/3.8/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/collections.html#userdict-objects" + +GET {{host}}/zh-cn/3.9/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/collections.html#userdict-objects" + +GET {{host}}/zh-cn/3.10/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/collections.html#userdict-objects" + +GET {{host}}/zh-tw/3/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/collections.html#userdict-objects" + +GET {{host}}/zh-tw/3.5/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/collections.html#userdict-objects" + +GET {{host}}/zh-tw/3.6/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/collections.html#userdict-objects" + +GET {{host}}/zh-tw/3.7/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/collections.html#userdict-objects" + +GET {{host}}/zh-tw/3.8/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/collections.html#userdict-objects" + +GET {{host}}/zh-tw/3.9/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/collections.html#userdict-objects" + +GET {{host}}/zh-tw/3.10/library/userdict.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/collections.html#userdict-objects" diff --git a/tests/docs-redirects/specs/py2.7-whichdb.hurl b/tests/docs-redirects/specs/py2.7-whichdb.hurl new file mode 100644 index 00000000..2cdd41ae --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-whichdb.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/whichdb.html -> library/dbm.html#dbm.whichdb +GET {{host}}/3/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/dbm.html#dbm.whichdb" + +GET {{host}}/3.5/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/dbm.html#dbm.whichdb" + +GET {{host}}/3.6/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/dbm.html#dbm.whichdb" + +GET {{host}}/3.7/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/dbm.html#dbm.whichdb" + +GET {{host}}/3.8/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/dbm.html#dbm.whichdb" + +GET {{host}}/3.9/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/dbm.html#dbm.whichdb" + +GET {{host}}/3.10/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/dbm.html#dbm.whichdb" + +GET {{host}}/es/3/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/dbm.html#dbm.whichdb" + +GET {{host}}/es/3.5/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/dbm.html#dbm.whichdb" + +GET {{host}}/es/3.6/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/dbm.html#dbm.whichdb" + +GET {{host}}/es/3.7/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/dbm.html#dbm.whichdb" + +GET {{host}}/es/3.8/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/dbm.html#dbm.whichdb" + +GET {{host}}/es/3.9/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/dbm.html#dbm.whichdb" + +GET {{host}}/es/3.10/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/dbm.html#dbm.whichdb" + +GET {{host}}/fr/3/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/dbm.html#dbm.whichdb" + +GET {{host}}/fr/3.5/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/dbm.html#dbm.whichdb" + +GET {{host}}/fr/3.6/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/dbm.html#dbm.whichdb" + +GET {{host}}/fr/3.7/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/dbm.html#dbm.whichdb" + +GET {{host}}/fr/3.8/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/dbm.html#dbm.whichdb" + +GET {{host}}/fr/3.9/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/dbm.html#dbm.whichdb" + +GET {{host}}/fr/3.10/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/dbm.html#dbm.whichdb" + +GET {{host}}/id/3/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/dbm.html#dbm.whichdb" + +GET {{host}}/id/3.5/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/dbm.html#dbm.whichdb" + +GET {{host}}/id/3.6/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/dbm.html#dbm.whichdb" + +GET {{host}}/id/3.7/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/dbm.html#dbm.whichdb" + +GET {{host}}/id/3.8/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/dbm.html#dbm.whichdb" + +GET {{host}}/id/3.9/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/dbm.html#dbm.whichdb" + +GET {{host}}/id/3.10/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/dbm.html#dbm.whichdb" + +GET {{host}}/it/3/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/dbm.html#dbm.whichdb" + +GET {{host}}/it/3.5/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/dbm.html#dbm.whichdb" + +GET {{host}}/it/3.6/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/dbm.html#dbm.whichdb" + +GET {{host}}/it/3.7/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/dbm.html#dbm.whichdb" + +GET {{host}}/it/3.8/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/dbm.html#dbm.whichdb" + +GET {{host}}/it/3.9/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/dbm.html#dbm.whichdb" + +GET {{host}}/it/3.10/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/dbm.html#dbm.whichdb" + +GET {{host}}/ja/3/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/dbm.html#dbm.whichdb" + +GET {{host}}/ja/3.5/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/dbm.html#dbm.whichdb" + +GET {{host}}/ja/3.6/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/dbm.html#dbm.whichdb" + +GET {{host}}/ja/3.7/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/dbm.html#dbm.whichdb" + +GET {{host}}/ja/3.8/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/dbm.html#dbm.whichdb" + +GET {{host}}/ja/3.9/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/dbm.html#dbm.whichdb" + +GET {{host}}/ja/3.10/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/dbm.html#dbm.whichdb" + +GET {{host}}/ko/3/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/dbm.html#dbm.whichdb" + +GET {{host}}/ko/3.5/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/dbm.html#dbm.whichdb" + +GET {{host}}/ko/3.6/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/dbm.html#dbm.whichdb" + +GET {{host}}/ko/3.7/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/dbm.html#dbm.whichdb" + +GET {{host}}/ko/3.8/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/dbm.html#dbm.whichdb" + +GET {{host}}/ko/3.9/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/dbm.html#dbm.whichdb" + +GET {{host}}/ko/3.10/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/dbm.html#dbm.whichdb" + +GET {{host}}/pl/3/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/dbm.html#dbm.whichdb" + +GET {{host}}/pl/3.5/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/dbm.html#dbm.whichdb" + +GET {{host}}/pl/3.6/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/dbm.html#dbm.whichdb" + +GET {{host}}/pl/3.7/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/dbm.html#dbm.whichdb" + +GET {{host}}/pl/3.8/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/dbm.html#dbm.whichdb" + +GET {{host}}/pl/3.9/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/dbm.html#dbm.whichdb" + +GET {{host}}/pl/3.10/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/dbm.html#dbm.whichdb" + +GET {{host}}/pt-br/3/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/dbm.html#dbm.whichdb" + +GET {{host}}/pt-br/3.5/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/dbm.html#dbm.whichdb" + +GET {{host}}/pt-br/3.6/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/dbm.html#dbm.whichdb" + +GET {{host}}/pt-br/3.7/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/dbm.html#dbm.whichdb" + +GET {{host}}/pt-br/3.8/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/dbm.html#dbm.whichdb" + +GET {{host}}/pt-br/3.9/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/dbm.html#dbm.whichdb" + +GET {{host}}/pt-br/3.10/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/dbm.html#dbm.whichdb" + +GET {{host}}/tr/3/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/dbm.html#dbm.whichdb" + +GET {{host}}/tr/3.5/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/dbm.html#dbm.whichdb" + +GET {{host}}/tr/3.6/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/dbm.html#dbm.whichdb" + +GET {{host}}/tr/3.7/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/dbm.html#dbm.whichdb" + +GET {{host}}/tr/3.8/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/dbm.html#dbm.whichdb" + +GET {{host}}/tr/3.9/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/dbm.html#dbm.whichdb" + +GET {{host}}/tr/3.10/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/dbm.html#dbm.whichdb" + +GET {{host}}/uk/3/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/dbm.html#dbm.whichdb" + +GET {{host}}/uk/3.5/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/dbm.html#dbm.whichdb" + +GET {{host}}/uk/3.6/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/dbm.html#dbm.whichdb" + +GET {{host}}/uk/3.7/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/dbm.html#dbm.whichdb" + +GET {{host}}/uk/3.8/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/dbm.html#dbm.whichdb" + +GET {{host}}/uk/3.9/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/dbm.html#dbm.whichdb" + +GET {{host}}/uk/3.10/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/dbm.html#dbm.whichdb" + +GET {{host}}/zh-cn/3/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/dbm.html#dbm.whichdb" + +GET {{host}}/zh-cn/3.5/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/dbm.html#dbm.whichdb" + +GET {{host}}/zh-cn/3.6/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/dbm.html#dbm.whichdb" + +GET {{host}}/zh-cn/3.7/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/dbm.html#dbm.whichdb" + +GET {{host}}/zh-cn/3.8/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/dbm.html#dbm.whichdb" + +GET {{host}}/zh-cn/3.9/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/dbm.html#dbm.whichdb" + +GET {{host}}/zh-cn/3.10/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/dbm.html#dbm.whichdb" + +GET {{host}}/zh-tw/3/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/dbm.html#dbm.whichdb" + +GET {{host}}/zh-tw/3.5/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/dbm.html#dbm.whichdb" + +GET {{host}}/zh-tw/3.6/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/dbm.html#dbm.whichdb" + +GET {{host}}/zh-tw/3.7/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/dbm.html#dbm.whichdb" + +GET {{host}}/zh-tw/3.8/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/dbm.html#dbm.whichdb" + +GET {{host}}/zh-tw/3.9/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/dbm.html#dbm.whichdb" + +GET {{host}}/zh-tw/3.10/library/whichdb.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/dbm.html#dbm.whichdb" diff --git a/tests/docs-redirects/specs/py2.7-winreg.hurl b/tests/docs-redirects/specs/py2.7-winreg.hurl new file mode 100644 index 00000000..ccfd4f32 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-winreg.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/_winreg.html -> library/winreg.html +GET {{host}}/3/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/winreg.html" + +GET {{host}}/3.5/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/winreg.html" + +GET {{host}}/3.6/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/winreg.html" + +GET {{host}}/3.7/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/winreg.html" + +GET {{host}}/3.8/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/winreg.html" + +GET {{host}}/3.9/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/winreg.html" + +GET {{host}}/3.10/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/winreg.html" + +GET {{host}}/es/3/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/winreg.html" + +GET {{host}}/es/3.5/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/winreg.html" + +GET {{host}}/es/3.6/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/winreg.html" + +GET {{host}}/es/3.7/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/winreg.html" + +GET {{host}}/es/3.8/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/winreg.html" + +GET {{host}}/es/3.9/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/winreg.html" + +GET {{host}}/es/3.10/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/winreg.html" + +GET {{host}}/fr/3/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/winreg.html" + +GET {{host}}/fr/3.5/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/winreg.html" + +GET {{host}}/fr/3.6/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/winreg.html" + +GET {{host}}/fr/3.7/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/winreg.html" + +GET {{host}}/fr/3.8/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/winreg.html" + +GET {{host}}/fr/3.9/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/winreg.html" + +GET {{host}}/fr/3.10/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/winreg.html" + +GET {{host}}/id/3/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/winreg.html" + +GET {{host}}/id/3.5/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/winreg.html" + +GET {{host}}/id/3.6/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/winreg.html" + +GET {{host}}/id/3.7/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/winreg.html" + +GET {{host}}/id/3.8/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/winreg.html" + +GET {{host}}/id/3.9/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/winreg.html" + +GET {{host}}/id/3.10/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/winreg.html" + +GET {{host}}/it/3/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/winreg.html" + +GET {{host}}/it/3.5/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/winreg.html" + +GET {{host}}/it/3.6/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/winreg.html" + +GET {{host}}/it/3.7/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/winreg.html" + +GET {{host}}/it/3.8/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/winreg.html" + +GET {{host}}/it/3.9/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/winreg.html" + +GET {{host}}/it/3.10/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/winreg.html" + +GET {{host}}/ja/3/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/winreg.html" + +GET {{host}}/ja/3.5/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/winreg.html" + +GET {{host}}/ja/3.6/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/winreg.html" + +GET {{host}}/ja/3.7/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/winreg.html" + +GET {{host}}/ja/3.8/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/winreg.html" + +GET {{host}}/ja/3.9/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/winreg.html" + +GET {{host}}/ja/3.10/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/winreg.html" + +GET {{host}}/ko/3/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/winreg.html" + +GET {{host}}/ko/3.5/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/winreg.html" + +GET {{host}}/ko/3.6/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/winreg.html" + +GET {{host}}/ko/3.7/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/winreg.html" + +GET {{host}}/ko/3.8/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/winreg.html" + +GET {{host}}/ko/3.9/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/winreg.html" + +GET {{host}}/ko/3.10/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/winreg.html" + +GET {{host}}/pl/3/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/winreg.html" + +GET {{host}}/pl/3.5/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/winreg.html" + +GET {{host}}/pl/3.6/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/winreg.html" + +GET {{host}}/pl/3.7/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/winreg.html" + +GET {{host}}/pl/3.8/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/winreg.html" + +GET {{host}}/pl/3.9/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/winreg.html" + +GET {{host}}/pl/3.10/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/winreg.html" + +GET {{host}}/pt-br/3/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/winreg.html" + +GET {{host}}/pt-br/3.5/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/winreg.html" + +GET {{host}}/pt-br/3.6/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/winreg.html" + +GET {{host}}/pt-br/3.7/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/winreg.html" + +GET {{host}}/pt-br/3.8/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/winreg.html" + +GET {{host}}/pt-br/3.9/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/winreg.html" + +GET {{host}}/pt-br/3.10/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/winreg.html" + +GET {{host}}/tr/3/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/winreg.html" + +GET {{host}}/tr/3.5/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/winreg.html" + +GET {{host}}/tr/3.6/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/winreg.html" + +GET {{host}}/tr/3.7/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/winreg.html" + +GET {{host}}/tr/3.8/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/winreg.html" + +GET {{host}}/tr/3.9/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/winreg.html" + +GET {{host}}/tr/3.10/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/winreg.html" + +GET {{host}}/uk/3/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/winreg.html" + +GET {{host}}/uk/3.5/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/winreg.html" + +GET {{host}}/uk/3.6/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/winreg.html" + +GET {{host}}/uk/3.7/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/winreg.html" + +GET {{host}}/uk/3.8/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/winreg.html" + +GET {{host}}/uk/3.9/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/winreg.html" + +GET {{host}}/uk/3.10/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/winreg.html" + +GET {{host}}/zh-cn/3/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/winreg.html" + +GET {{host}}/zh-cn/3.5/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/winreg.html" + +GET {{host}}/zh-cn/3.6/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/winreg.html" + +GET {{host}}/zh-cn/3.7/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/winreg.html" + +GET {{host}}/zh-cn/3.8/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/winreg.html" + +GET {{host}}/zh-cn/3.9/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/winreg.html" + +GET {{host}}/zh-cn/3.10/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/winreg.html" + +GET {{host}}/zh-tw/3/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/winreg.html" + +GET {{host}}/zh-tw/3.5/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/winreg.html" + +GET {{host}}/zh-tw/3.6/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/winreg.html" + +GET {{host}}/zh-tw/3.7/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/winreg.html" + +GET {{host}}/zh-tw/3.8/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/winreg.html" + +GET {{host}}/zh-tw/3.9/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/winreg.html" + +GET {{host}}/zh-tw/3.10/library/_winreg.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/winreg.html" diff --git a/tests/docs-redirects/specs/py2.7-xmlrpclib.hurl b/tests/docs-redirects/specs/py2.7-xmlrpclib.hurl new file mode 100644 index 00000000..02c27ee0 --- /dev/null +++ b/tests/docs-redirects/specs/py2.7-xmlrpclib.hurl @@ -0,0 +1,458 @@ +# Test redirection of documents moved from Python 2.7 to Python 3.0 + + +## Test: Redirect library/xmlrpclib.html -> library/xmlrpc.client.html +GET {{host}}/3/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/xmlrpc.client.html" + +GET {{host}}/3.5/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.5/library/xmlrpc.client.html" + +GET {{host}}/3.6/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.6/library/xmlrpc.client.html" + +GET {{host}}/3.7/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.7/library/xmlrpc.client.html" + +GET {{host}}/3.8/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.8/library/xmlrpc.client.html" + +GET {{host}}/3.9/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.9/library/xmlrpc.client.html" + +GET {{host}}/3.10/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3.10/library/xmlrpc.client.html" + +GET {{host}}/es/3/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3/library/xmlrpc.client.html" + +GET {{host}}/es/3.5/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.5/library/xmlrpc.client.html" + +GET {{host}}/es/3.6/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.6/library/xmlrpc.client.html" + +GET {{host}}/es/3.7/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.7/library/xmlrpc.client.html" + +GET {{host}}/es/3.8/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.8/library/xmlrpc.client.html" + +GET {{host}}/es/3.9/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.9/library/xmlrpc.client.html" + +GET {{host}}/es/3.10/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/es/3.10/library/xmlrpc.client.html" + +GET {{host}}/fr/3/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3/library/xmlrpc.client.html" + +GET {{host}}/fr/3.5/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.5/library/xmlrpc.client.html" + +GET {{host}}/fr/3.6/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.6/library/xmlrpc.client.html" + +GET {{host}}/fr/3.7/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.7/library/xmlrpc.client.html" + +GET {{host}}/fr/3.8/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.8/library/xmlrpc.client.html" + +GET {{host}}/fr/3.9/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.9/library/xmlrpc.client.html" + +GET {{host}}/fr/3.10/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/fr/3.10/library/xmlrpc.client.html" + +GET {{host}}/id/3/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3/library/xmlrpc.client.html" + +GET {{host}}/id/3.5/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.5/library/xmlrpc.client.html" + +GET {{host}}/id/3.6/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.6/library/xmlrpc.client.html" + +GET {{host}}/id/3.7/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.7/library/xmlrpc.client.html" + +GET {{host}}/id/3.8/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.8/library/xmlrpc.client.html" + +GET {{host}}/id/3.9/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.9/library/xmlrpc.client.html" + +GET {{host}}/id/3.10/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/id/3.10/library/xmlrpc.client.html" + +GET {{host}}/it/3/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3/library/xmlrpc.client.html" + +GET {{host}}/it/3.5/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.5/library/xmlrpc.client.html" + +GET {{host}}/it/3.6/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.6/library/xmlrpc.client.html" + +GET {{host}}/it/3.7/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.7/library/xmlrpc.client.html" + +GET {{host}}/it/3.8/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.8/library/xmlrpc.client.html" + +GET {{host}}/it/3.9/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.9/library/xmlrpc.client.html" + +GET {{host}}/it/3.10/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/it/3.10/library/xmlrpc.client.html" + +GET {{host}}/ja/3/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3/library/xmlrpc.client.html" + +GET {{host}}/ja/3.5/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.5/library/xmlrpc.client.html" + +GET {{host}}/ja/3.6/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.6/library/xmlrpc.client.html" + +GET {{host}}/ja/3.7/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.7/library/xmlrpc.client.html" + +GET {{host}}/ja/3.8/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.8/library/xmlrpc.client.html" + +GET {{host}}/ja/3.9/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.9/library/xmlrpc.client.html" + +GET {{host}}/ja/3.10/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ja/3.10/library/xmlrpc.client.html" + +GET {{host}}/ko/3/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3/library/xmlrpc.client.html" + +GET {{host}}/ko/3.5/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.5/library/xmlrpc.client.html" + +GET {{host}}/ko/3.6/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.6/library/xmlrpc.client.html" + +GET {{host}}/ko/3.7/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.7/library/xmlrpc.client.html" + +GET {{host}}/ko/3.8/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.8/library/xmlrpc.client.html" + +GET {{host}}/ko/3.9/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.9/library/xmlrpc.client.html" + +GET {{host}}/ko/3.10/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/ko/3.10/library/xmlrpc.client.html" + +GET {{host}}/pl/3/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3/library/xmlrpc.client.html" + +GET {{host}}/pl/3.5/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.5/library/xmlrpc.client.html" + +GET {{host}}/pl/3.6/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.6/library/xmlrpc.client.html" + +GET {{host}}/pl/3.7/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.7/library/xmlrpc.client.html" + +GET {{host}}/pl/3.8/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.8/library/xmlrpc.client.html" + +GET {{host}}/pl/3.9/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.9/library/xmlrpc.client.html" + +GET {{host}}/pl/3.10/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pl/3.10/library/xmlrpc.client.html" + +GET {{host}}/pt-br/3/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3/library/xmlrpc.client.html" + +GET {{host}}/pt-br/3.5/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.5/library/xmlrpc.client.html" + +GET {{host}}/pt-br/3.6/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.6/library/xmlrpc.client.html" + +GET {{host}}/pt-br/3.7/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.7/library/xmlrpc.client.html" + +GET {{host}}/pt-br/3.8/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.8/library/xmlrpc.client.html" + +GET {{host}}/pt-br/3.9/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.9/library/xmlrpc.client.html" + +GET {{host}}/pt-br/3.10/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/pt-br/3.10/library/xmlrpc.client.html" + +GET {{host}}/tr/3/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3/library/xmlrpc.client.html" + +GET {{host}}/tr/3.5/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.5/library/xmlrpc.client.html" + +GET {{host}}/tr/3.6/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.6/library/xmlrpc.client.html" + +GET {{host}}/tr/3.7/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.7/library/xmlrpc.client.html" + +GET {{host}}/tr/3.8/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.8/library/xmlrpc.client.html" + +GET {{host}}/tr/3.9/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.9/library/xmlrpc.client.html" + +GET {{host}}/tr/3.10/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/tr/3.10/library/xmlrpc.client.html" + +GET {{host}}/uk/3/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3/library/xmlrpc.client.html" + +GET {{host}}/uk/3.5/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.5/library/xmlrpc.client.html" + +GET {{host}}/uk/3.6/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.6/library/xmlrpc.client.html" + +GET {{host}}/uk/3.7/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.7/library/xmlrpc.client.html" + +GET {{host}}/uk/3.8/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.8/library/xmlrpc.client.html" + +GET {{host}}/uk/3.9/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.9/library/xmlrpc.client.html" + +GET {{host}}/uk/3.10/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/uk/3.10/library/xmlrpc.client.html" + +GET {{host}}/zh-cn/3/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3/library/xmlrpc.client.html" + +GET {{host}}/zh-cn/3.5/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.5/library/xmlrpc.client.html" + +GET {{host}}/zh-cn/3.6/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.6/library/xmlrpc.client.html" + +GET {{host}}/zh-cn/3.7/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.7/library/xmlrpc.client.html" + +GET {{host}}/zh-cn/3.8/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.8/library/xmlrpc.client.html" + +GET {{host}}/zh-cn/3.9/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.9/library/xmlrpc.client.html" + +GET {{host}}/zh-cn/3.10/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-cn/3.10/library/xmlrpc.client.html" + +GET {{host}}/zh-tw/3/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3/library/xmlrpc.client.html" + +GET {{host}}/zh-tw/3.5/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.5/library/xmlrpc.client.html" + +GET {{host}}/zh-tw/3.6/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.6/library/xmlrpc.client.html" + +GET {{host}}/zh-tw/3.7/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.7/library/xmlrpc.client.html" + +GET {{host}}/zh-tw/3.8/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.8/library/xmlrpc.client.html" + +GET {{host}}/zh-tw/3.9/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.9/library/xmlrpc.client.html" + +GET {{host}}/zh-tw/3.10/library/xmlrpclib.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/zh-tw/3.10/library/xmlrpc.client.html" diff --git a/tests/docs-redirects/specs/py3k.hurl b/tests/docs-redirects/specs/py3k.hurl new file mode 100644 index 00000000..38eaaa4e --- /dev/null +++ b/tests/docs-redirects/specs/py3k.hurl @@ -0,0 +1,11 @@ +# Assert that Py3k is Python 3. + +GET {{host}}/py3k +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3" + +GET {{host}}/py3k/whatsnew/3.0.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/whatsnew/3.0.html" diff --git a/tests/docs-redirects/specs/top-level-directories.hurl b/tests/docs-redirects/specs/top-level-directories.hurl new file mode 100644 index 00000000..7ebd4f3f --- /dev/null +++ b/tests/docs-redirects/specs/top-level-directories.hurl @@ -0,0 +1,151 @@ +# Assert that top-level directories are redirected to the Python 3 docs. + +GET {{host}}/archives +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/archives" + +GET {{host}}/c-api +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/c-api" + +GET {{host}}/distutils +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/distutils" + +GET {{host}}/extending +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/extending" + +GET {{host}}/faq +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/faq" + +GET {{host}}/howto +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/howto" + +GET {{host}}/install +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/install" + +GET {{host}}/library +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library" + +GET {{host}}/reference +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/reference" + +GET {{host}}/tutorial +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/tutorial" + +GET {{host}}/using +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/using" + +GET {{host}}/whatsnew +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/whatsnew" + +GET {{host}}/_images +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/_images" + +GET {{host}}/_sources +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/_sources" + +GET {{host}}/_static +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/_static" + +GET {{host}}/archives/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/archives/spam" + +GET {{host}}/c-api/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/c-api/spam" + +GET {{host}}/distutils/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/distutils/spam" + +GET {{host}}/extending/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/extending/spam" + +GET {{host}}/faq/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/faq/spam" + +GET {{host}}/howto/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/howto/spam" + +GET {{host}}/install/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/install/spam" + +GET {{host}}/library/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/library/spam" + +GET {{host}}/reference/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/reference/spam" + +GET {{host}}/tutorial/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/tutorial/spam" + +GET {{host}}/using/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/using/spam" + +GET {{host}}/whatsnew/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/whatsnew/spam" + +GET {{host}}/_images/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/_images/spam" + +GET {{host}}/_sources/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/_sources/spam" + +GET {{host}}/_static/spam +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/_static/spam" diff --git a/tests/docs-redirects/specs/top-level-files.hurl b/tests/docs-redirects/specs/top-level-files.hurl new file mode 100644 index 00000000..fe3b4a57 --- /dev/null +++ b/tests/docs-redirects/specs/top-level-files.hurl @@ -0,0 +1,151 @@ +# Assert that top-level files are redirected to the Python 3 docs. + +GET {{host}}/about.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/about.html" + +GET {{host}}/about +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/about.html" + +GET {{host}}/bugs.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/bugs.html" + +GET {{host}}/bugs +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/bugs.html" + +GET {{host}}/contents.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/contents.html" + +GET {{host}}/contents +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/contents.html" + +GET {{host}}/copyright.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/copyright.html" + +GET {{host}}/copyright +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/copyright.html" + +GET {{host}}/download.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/download.html" + +GET {{host}}/download +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/download.html" + +GET {{host}}/genindex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/genindex.html.html" + +GET {{host}}/genindex +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/genindex.html" + +GET {{host}}/genindex-_.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/genindex-_.html.html" + +GET {{host}}/genindex-_ +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/genindex-_.html" + +GET {{host}}/genindex-A.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/genindex-A.html.html" + +GET {{host}}/genindex-A +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/genindex-A.html" + +GET {{host}}/genindex-Symbols.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/genindex-Symbols.html.html" + +GET {{host}}/genindex-Symbols +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/genindex-Symbols.html" + +GET {{host}}/glossary.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/glossary.html" + +GET {{host}}/glossary +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/glossary.html" + +GET {{host}}/index.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/index.html" + +GET {{host}}/index +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/index.html" + +GET {{host}}/license.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/license.html" + +GET {{host}}/license +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/license.html" + +GET {{host}}/py-modindex.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/py-modindex.html" + +GET {{host}}/py-modindex +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/py-modindex.html" + +GET {{host}}/search.html +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/search.html" + +GET {{host}}/search +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/search.html" + +GET {{host}}/searchindex.js +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/searchindex.js" + +GET {{host}}/objects.inv +HTTP 301 +[Asserts] +header "Location" == "https://localhost/3/objects.inv" diff --git a/tests/docs-redirects/test.sh b/tests/docs-redirects/test.sh new file mode 100755 index 00000000..bbf90469 --- /dev/null +++ b/tests/docs-redirects/test.sh @@ -0,0 +1,19 @@ +#!/bin/bash +set -euxo pipefail + +# Test the docs redirects. This script must be run from the repository root. + +docker stop docs-redirects-nginx || true + +docker run --name docs-redirects-nginx --detach --quiet --rm --tty \ + --mount type=bind,source=./tests/docs-redirects/nginx.conf,target=/etc/nginx/conf.d/docs.conf,readonly \ + --mount type=bind,source=./salt/docs/config/nginx.docs-redirects.conf,target=/etc/nginx/docs-redirects.conf,readonly \ + -p 10000:10000 \ + nginx:1.26.1-alpine + +# Wait for the nginx container to start… +sleep 1 + +hurl --color --continue-on-error --variable host=http://localhost:10000 --test ./tests/docs-redirects/specs/*.hurl + +docker stop docs-redirects-nginx