Перенаправление пользователей с правилами перезаписи при использовании файла hosts для сопоставления поддоменов с localhost на сервере Apache

Я запускаю сервер Apache 2.4 с использованием docker-compose .

У меня есть «главный» виртуальный хост, который включает в себя перезапись путей, начинающихся с / test / , в субдомен test :

<VirtualHost *:80>
        ServerName example.com
        RewriteEngine on
        RewriteRule "^/test/(.*)$" "http://test.example.com/$1" [P]
</VirtualHost>

Поддомен test выполняет не существует и не может быть создан (по коммерческим причинам, не имеющим отношения к проблеме). Способ, которым я выполняю разрешение test.example.com , заключается в том, чтобы включить записи хостов в docker-compose.yml :

version: "3.7"

services:
    test:
        image: httpd:2.4
        ports:
            - 80:80
        extra_hosts:
            - "test.example.com:127.0.0.1"

Это работает, однако в тесте vhost для .example.com У меня есть другое правило перезаписи:

<VirtualHost *:80>
        ServerName test.example.com
        RewriteEngine on
        RewriteCond %{REQUEST_URI} ^/login
        RewriteCond %{HTTP:COOKIE} ^.*cookie=([^;]+)
        RewriteRule /login /dashboard [R=302]
</VirtualHost>

Это правило правильно перезаписывает http://test.example.com/login на http://test.example.com / dashboard при успешном входе в систему, но затем в браузере пользователя происходит перенаправление, и http://test.example.com не может быть разрешен ( ERR_NAME_NOT_RESOLVED ).

Как я могу выполнить эту перезапись на виртуальном хосте test.example.com , чтобы он правильно перенаправлял пользователя на страницу / dashboard ?

1
задан 17 March 2021 в 23:31
1 ответ

Вы можете добавить перенаправление в конфиг для example.com:

<VirtualHost *:80>
    ServerName example.com
    RewriteEngine on

    RewriteCond %{HTTP:COOKIE} ^.*cookie=([^;]+)
    RewriteRule "^/test/login/?$" "/test/dashboard" [R=302]

    RewriteRule "^/test/(.*)" "http://test.example.com/$1" [P]
</VirtualHost>
1
ответ дан 24 April 2021 в 00:49

Теги

Похожие вопросы