Настройка редиректа mod_jk в Hybris

Я установил apache httpd 2.2.15 на свой сервер приложений. Мне нужно получить страницу входа (https://ip_address:9002/xxstorefront/xx/en/USD/login), когда я нажимаю на https://dev.xxyy.com/login < / а>. Я установил SSL-сертификат для своего домена и установил следующие правила перенаправления.

ProxyPass         /login http://localhost:9001/xxstorefront/xx/en/USD/login
ProxyPassReverse  /login http://localhost:9001/xxstorefront/xx/en/USD/login
ProxyPass         /login https://localhost:9002/xxstorefront/xx/en/USD/login
ProxyPassReverse  /login https://localhost:9002/xxstorefront/xx/en/USD/login

RewriteEngine On
RewriteRule ^(.*)/login http://%{ip_address:9001}$1/{xxstorefront/xx/en/USD/login}$2 [L,R] 

Когда я нажимаю https://dev.xxyy.com/login, я получаю ошибку ниже,

Not Found 
The requested URL /login was not found on this server.
Apache/2.2.15 (CentOS) Server at dev.xxyy.com Port 443 

Когда я нажимаю на https://dev.xxyy.com, я получаю домашнюю страницу apache по умолчанию.

Пожалуйста, подскажите, как мне установить правила перенаправления.


person Arrthy    schedule 07.07.2018    source источник


Ответы (1)


Ваша конфигурация недействительна. Эти две строки:

ProxyPass         /login https://localhost:9002/xxstorefront/xx/en/USD/login
ProxyPassReverse  /login https://localhost:9002/xxstorefront/xx/en/USD/login

перезапишите эти два:

ProxyPass         /login http://localhost:9001/xxstorefront/xx/en/USD/login
ProxyPassReverse  /login http://localhost:9001/xxstorefront/xx/en/USD/login

Механизм перезаписи наверное вообще не работает:

RewriteEngine On
RewriteRule ^(.*)/login http://%{ip_address:9001}$1/{xxstorefront/xx/en/USD/login}$2 [L,R]

Думаю, эта конфигурация должна решить вашу проблему:

<VirtualHost *:80>
    ServerName        dev.xxyy.com

    ProxyPreserveHost On
    ProxyPass         / http://localhost:9001/xxstorefront/xx/en/USD/
    ProxyPassReverse  / http://localhost:9001/xxstorefront/xx/en/USD/
</VirtualHost>

<VirtualHost *:443>
    ServerName        dev.xxyy.com

    SSLEngine on
    // other SSL directives

    ProxyPreserveHost On
    ProxyPass         / https://localhost:9002/xxstorefront/xx/en/USD/
    ProxyPassReverse  / https://localhost:9002/xxstorefront/xx/en/USD/
</VirtualHost>

Он определяет два виртуальных хоста, которые работают как прокси и сопоставляют все запросы с xxstorefront/xx/en/USD/...:

http://dev.xxyy.com/(.*) → http://localhost:9001/xxstorefront/xx/en/USD/(.*)
https://dev.xxyy.com/(.*) → https://localhost:9002/xxstorefront/xx/en/USD/(.*)
person agabrys    schedule 08.07.2018
comment
Большое спасибо. Это помогло, теперь я могу заставить перенаправление работать. Но CSS не загружается для моих страниц. Нужно ли мне добавлять какие-либо свойства в файл conf? - person Arrthy; 11.07.2018
comment
Решили, изменив как ‹VirtualHost *: 80› ServerName dev.xxyy.com ProxyPreserveHost на ProxyPass / localhost: 9001 ProxyPassReverse / localhost: 9001 ‹/VirtualHost› ‹VirtualHost *: 443› ServerName dev.xxyy.com ProxyPreserveHost On ProxyPass / localhost: 9002 ProxyPassReverse / localhost: 9002 ‹/VirtualHost› Но только когда я нажимаю на dev .xxyy.com / xxstorefront / xx / en / USD, я могу просматривать страницу. Я должен получить страницу на dev.xxyy.com. Любые предложения, пожалуйста - person Arrthy; 11.07.2018
comment
Где находятся ваши файлы CSS? Пожалуйста, дайте мне пример URL. - person agabrys; 11.07.2018
comment
У меня есть css, как показано ниже xxstorefront / xx / en / USD / login xxstorefront / xx / en / USD / register xxstorefront / xx / en / USD / logout - person Arrthy; 11.07.2018
comment
Я могу получить страницу входа в систему. Но внутреннее перенаправление не работает. Например, когда я нажимаю на регистр, он показывает, что не найдено. Стоит ли устанавливать правила внутреннего перенаправления? Любые предложения, пожалуйста. - person Arrthy; 11.07.2018